说来汗颜,本人虽然从事硬件研发,但连电子工程师起码最应该懂的C51编程都没弄过。随着生活和工作压力的增大,心里也就开始浮躁了,以至于静不下心来搞技术了,后果就是我相当长一段时间都没有任何进步。最近想想自己微薄的工资和渺茫的未来,我决定还是从新开始,从51单片机编程开始,一步一个脚印,把该走的路都走了,做技术的本就应该脚踏实地,认认真真做出点东西。好了不多说了,下面开始讨论技术了。
以前从没听说过前后台系统,所以也没有用过,刚学C51编程哪会还是用教科书的程序,能够实现相应的功能,比如亮个LED灯,显示各数码管之类的,用的延迟都是Delay10ms()之类的,也没有觉得不妥。后来再往上查找资料时无意间看到前后台系统。在Google上搜索了一番后,如获至宝,那种感觉就像让我发现单片机编程的新大陆,回头再看教科书上程序,感觉就是功能性的演示,实际中什么用也没有。下面是我查找的关于前后台系统的解释的。
前后台系统 (Foreground/Background System)
这种系统可称为前后台系统或超循环系统(Super-Loops)。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。后台也可以叫做任务级。前台也叫中断级。时间相关性很强的关键操作(Critical operation)一定是靠中断服务来保证的。因为中断服务提供的信息一直要等到后台程序走到该处理这个信息这一步时才能得到处理,这种系统在处理信息的及时性上,比实际可以做到的要差。这个指标称作任务级响应时间。最坏情况下的任务级响应时