今天学得好多呀!
如果用大循环结构进行单片机的编程
那么:
整个程序循环一圈的时间 < 程序中等待事件最小的任务
while(1)
{
等待1s的程序; //小灯闪烁
等待5s的程序; //播放语音
等待200ms的程序;
等待20ms的程序; //按键检测
等待1ms的程序; //发数据
}
如:上面的while,里有很多任务,所以,1ms是等待最短的任务,,,整个while(1)循环下来,要小于1ms,,,,
如果1ms难以保证,我们就退而求其次,,把1ms做成中断, while(1)循环一圈需要小于20ms
除了用中断,另一个方式就是用dma
把每个事件都做成数组,用1ms的定时器控制,,每次到达定时器,我们就让数组里的各个元素都减去1;
用一个定时器来控制所有任务的计时