pic单片机 C语言中断程序不能返回主程序?

pic单片机 C语言中断程序不能返回主程序?,第1张

程序不可能一直在中断内循环,如果硬件允许你可以设置一个小灯点亮程序,放在总循环中进行检验,这样程序是否死掉在中断内就一目了然了。

此外你的程序编写有错误,这个错误至少会导致你定时器函数是不可能执行的。错误点“tmr1_flg==1”,双等号应该为单等号。

很简单的。

在main主程序里面

LOOP GOTO LOOP

这条程序,会不停的执行,到了TMR0溢出的时候就会执行中断程序

ORG 0004H为中断程序的地址

首先,在初始化中设置好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。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12019843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存