不过入口只能有一个。
也就是说,中断的时候,只卜昌能执行一个入口函数。
但这个函数里升弊判面,可以调用其它函数 这样就吵改可以分部分了。
程序不可能一直在中断内循环,如果硬件允许埋拍你可以设置一个小灯点亮程序,放在总循环中进行检验,这样程序是否死掉在或和中断内就一目了然了。此外你的程序编写有错误,这个错误至少会导致你定时器函数是不可能执行的。错误点“tmr1_flg==1”,双等号衫液盯应该为单等号。
首先,在初始化中设置好I/O口功能。开中断,初始化串口。然后写个余枝串口中断函数,例如:
void interrupt isr(void)
if(RCIE&&RCIF) //串口接收中断
{
while(!RCIF)
NOP()NOP()NOP()
recive_dat[1]=RCREG//接收1位数据
NOP()NOP()NOP()
CREN=0
NOP()NOP()NOP()
CREN=1
}
当然,你把括号中加上你的函数就好了。
本人建议不要在中断中处理函数,最好在中断中返回个标志位竖芹敏,然后在主函数中执行函数。
如果一定要在中断中执行函数,这个函数最好在其他地方不使用,否则容易出错首春哦。
你说的RXIF我不知道,我只知道RCIF。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)