当前位置:网站首页>简单为美-编程思路
简单为美-编程思路
2022-07-28 00:00:00 【@一下大聪明】
系统时钟1ms++,理论可正常工作49天。
uint32_t getSysTick(void)
{
return jiffies;
}
void SysTick_Handler(void)
{
jiffies++;
}
GPIO的OUTPUT输出任务
void GPIO_driver_task(void)
{
static int GPIO_gap_time = 10;
static int GPIO_drv_start_time = 0;
static int GPIO_is_run = 0;
if (getSysTick()>GPIO_drv_start_time)
{
GPIO_drv_start_time = getSysTick();
GPIO_drv_start_time += led_gap_time;
GPIO_is_run = 1;
}
if(GPIO_is_run == 1)
{
GPIO_is_run = hal_GPIO_Driver();
}
}
GPIO的OUTPUT的状态函数
int hal_GPIO_Driver(void)
{
static int step = 0;
switch(step)
{
case enum1:{
GPIO_function1(); step = enum2; return 1;}
case enum2:{
GPIO_function2(); step = enum3; return 1;}
case enum3:{
GPIO_function3(); step = enum4; return 1;}
case enum4:{
GPIO_function4(); step = enum5; return 1;}
case enum5:{
GPIO_function5(); step = enum6; return 1;}
case enum6:{
GPIO_function6(); step = finish; return 1;}
default:{
step = enum1; return 0;}
}
}
GPIO_function1函数说明
unsigned short Led_Dark[] = {
0,1,LED_EFFECT_END};
unsigned short Led_Light[] = {
1,1,LED_EFFECT_END};
unsigned short Led_Light100ms[] = {
1,10,0,1,LED_EFFECT_END};
unsigned short Led_Blink1[] = {
1,1,0,99,LED_EFFECT_AGN,2};
unsigned short Led_Blink2[] = {
1,50,0,50,LED_EFFECT_AGN,2};
unsigned short Led_Blink3[] = {
1,20,0,50,1,50,0,10,1,10,0,20,1,10,0,20,LED_EFFECT_AGN,8};
unsigned short Led_Blink4[] = {
1,10,0,80,1,50,0,50,LED_EFFECT_AGN,4};
int GPIO_function1(void)
{
for(unsigned char i=0; i<LED_SUM; i++)
{
if(Ledx[i].Led_Timer)
{
Ledx[i].Led_Timer--;
}
if( !Ledx[i].Led_Timer )
{
if(*(Ledx[i].pLed_State+2) == LED_EFFECT_END){
}
else
{
if((*(Ledx[i].pLed_State+=2)) == LED_EFFECT_AGN)
{
Ledx[i].pLed_State = Ledx[i].pLed_State - (*(Ledx[i].pLed_State+1) * 2);
}
Ledx[i].Led_Timer = *(Ledx[i].pLed_State+1);
}
hal_LedDrive[i](*Ledx[i].pLed_State);
}
}
return 0;
}
边栏推荐
猜你喜欢

Unity 通用红点系统

Sort out SQL performance optimization and collect classics!

Qt 绘制系统简介

企业运维实践-使用Aliyun容器镜像服务对海外gcr、quay仓库镜像进行镜像拉取构建

Docker builds MySQL master-slave locally

Article reproduction: super resolution network fsrcnn

docker 本地搭建mysql主从

Can anime characters become "real people"? Paddegan helps you find the TA of "tear man"

股票问题5连

HRD 1. a simple and reliable HRD detection method
随机推荐
C language · pointer
2.2 comprehensive application questions - sequence table
Software test interview question: how to prepare test data? How to prevent data pollution?
“你“想当测试/开发程序员吗?努力发芽的我们......
Linux系统彻底删除Mysql
白质脑功能网络图论分析:抑郁症分类和预测的神经标记
Interview question 01.07. rotation matrix
26.抽象化和模板思想
GBase 8c 事务ID和快照(六)
面试题 01.09. 字符串轮转
Oracle Rac 集群文件目录迁移
Redis 5 种基本数据结构
Matlab 44 animation gradient drawing programs
实时数仓:美团的实时数仓建设实践
Cap principle of [distributed development]
爬虫学习的一个综合案例——访问网站
GBase 8c 通用文件访问函数
GBase 8c 恢复控制函数
For newly installed PIP3, use no module named 'LSB_ Release 'problem
马克的故事