单片机怎么在灯闪烁的同时去做另一件事情呢?

2020-01-13 18:34发布


程序中定时1s和10s有什么问题没有

BOOL  volatile  led_flag;
BOOL  volatile  flag_1s;
BOOL  volatile  flag_10s;

void Sys_10ms_Interrupt(void) //10ms中断函数
{
        static volatile  u16 led_timer = 0;
        static volatile  u16 count_timer = 0;
        static volatile  u16 count_timer2 = 0;
        count_timer++;
        flag_1s = 0;
        if(count_timer%100 == 0)       
        {       
                flag_1s = 1;          //1s定时
                count_timer2++;
                if(count_timer2 == 10)
                {                  
                        flag_10s = 1;       //10s定时
                        count_timer2 = 0;
                }
        }
        led_timer++;
        if(led_timer>10) //100ms 反转
        {
                led_flag =~led_flag;
                led_timer = 0;
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
42条回答
chenliangliang_
1楼-- · 2020-01-17 12:03
自己类比一下,吃饭的时候怎么同时呼吸
sup888
2楼-- · 2020-01-17 17:18
qq335702318 发表于 2018-11-5 16:39
又是一份500+ page的资料
搞嵌入式的真心伤不起

用keil的rtx点个流水灯,还是很简单的事情 。个人觉得一般应用,拿来用就行了,没必要非得读懂每一行代码
wowangru
3楼-- · 2020-01-17 21:37
这种问题 明显中断处理
cnshibo
4楼-- · 2020-01-18 02:55
 精彩回答 2  元偷偷看……
mikewang011
5楼-- · 2020-01-18 06:38
一个硬件通用定时器+软件定时队列+状态机咯
资深雨粉
6楼-- · 2020-01-18 07:59
mikewang011 发表于 2018-11-6 10:01
一个硬件通用定时器+软件定时队列+状态机咯

看不懂你写的这个。软件定时队列怎么弄

一周热门 更多>