最近觉得我的单片机系统效率很低. 看到匠人的"编程漫谈"有些地方不在明白.请指教一下.谢谢. 匠人提到: "比如说在LED数码管动态扫描显示方面,假如要定期扫描多个LED数码管,并且每个LED点亮后,需要延时1毫秒。这个1毫秒如果直接用延时子程序去实现,就浪费了系统的时间资源。我们可以把这个显示程序当作一个进程,分多个阶段来执行。每个阶段切换显示一个LED管。 而在当中的1毫秒延时期间,可以将系统控制权交还给调度程序,去执行其它程序。 在作按键检测时,需要消抖延时;或在写外部E2PROM(如24C01芯片)时,需要写动作延时。这些时间都可以让系统去执行其它程序,提高整个系统的实时性。"
问题1.怎样在延时1毫秒期间,让系统控制权还给调度程序,去执行其它程序?
问题2.在按键消抖延时期间,可以让系统去执行其它程序.意思是不是说用执行一些模块来作为延时? 如果我的按键要等到放开后才执行下上面的程序,怎在这个等按键放开的期间去执行调度程序去调度其它程序的执行? |