单片机的程序框架
INT8U ChkRxFrame(void)
{
}
以上的代码ChkRxFrame()可以放于串口接收数据处理函数RxProcess() 中,然后放入主循环中执行即可。以上用一个计时变量RxTimer,很微妙的解决了接收帧超时的放弃帧处理,它没有用任何等待,而且主循环中每次只是接收一个字节数据,时间很短。
我们开始架构整个系统的框架:
我们选用一个系统不常用的TIMER来产生系统所需的系统基准节拍,这里我们选用4ms;
在meg8中我们代码如下:
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
}
然后我们设计一个TimeEvent()函数,来调用一些在以指定的频率需要循环调用的函数,
比如每个4ms我们就进行喂狗以及数码管动态扫描显示,每隔1s我们就调用led闪烁程序,每隔20ms我们进行键盘扫描程序;
void TimeEvent (void)
{