@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ InitSys();@@@@@@ //初始化
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ //自己任务中的其他功能函数
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 。。。。。。。。。。。。。。。。。。。。。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ while(1);
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ }
主程序之后我要讲讲中断函数,中断是你做单片机任务中不可缺少的部分,也可以说是灵魂了(夸张吗)。
@@@@@@@@@@@@@@@@@@@@@@@@ /*****************************************************************************
@@@@@@@@@@@@@@@@@@@@@@@@@@ 各中断函数,可按优先级依次书写
@@@@@@@@@@@@@@@@@@@@@@@@@@@ ***********************************************************************/
举个定时中断的例子:
@@@@@ 初始化}}}}}}}}}}}}}}}}}}}}} void Init_Timer_A(void)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ {
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ TACTL = TASSEL0 + TACLR;@@@@@@@@@@@@@@@ // ACLK, clear TAR
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ CCTL0 = CCIE;@@@@@@@@@@@@@@@@@@@@@@@@@@ // CCR0 中断使能
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ CCR0=32768;@@@@@@@@@@@@@@@@@@@@@@@@@@@@ //定时 1s
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ TACTL|=MC0;@@@@@@@@@@@@@@@@@@@@@@@@@@@@ //增计数模式
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ }
@@@@@@ 中断服务}}}}}}}}}}}}}}}}} #pragma vector=TIMERA0_VECTOR
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ __interrupt void TimerA0()
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ {
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // 你自己要求中断执行的任务
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ }
当然,还有其他的定时,和多种中断,各系列芯片的中断向量个数也不同。
整体的程序设计结构,包括了所有外围模块及内部时钟,中断,定时的初始化。具体情况大家可以根据自
己的需要添加或者减少,记住,模块化设计时最有力的武器。
这可是个人总结的经典阿,谢谢支持。因为经常使用 149,所以这是 149 的结构,其他的再更改,根据个
人需要。