lisf 发表于 2024-6-24 09:14:55

程序中写中断函数与没写中断函数的区别

STC15和STC8系列:有些型号没有该中断功能,如果程序里面写中断函数(外部中断,定时器中断等)有影响吗?比如没有定时器2的单片机,程序中有以下函数时,有影响吗? 写中断函数与没写中断函数对稳定性有什么区别,个人想法:由于干扰或其它原因程序跑飞到中断函数入口地址时,如果写有中断函数有可能执行中断函数后返回继续运行,没有写有中断函数会死机了
void TM2_Isr() interrupt 12
{
   AUXINTIF &= ~T2IF;                        //清中断标志
}


乘风飞扬 发表于 2024-6-24 09:22:55

没有定时器2的单片机,写了定时器2的中断函数没什么影响。
中断能返回继续执行的前提是进入中断前将当前地址压入堆栈,这样执行完中断才能返回现场。
程序跑飞是不会执行当前地址入栈操作,所以也不会返回原地址。

soma 发表于 2024-6-24 09:33:44

应该不会执行中断,也不会造成程序跑飞吧

_奶咖君_ 发表于 2024-6-24 09:34:26

我比较深刻的体会是,,如果用了开启了某些中断并触发了,,但是忘了写中断函数,然后就会出现程序飞了,,

可以不开,,开启得写中断函数,,空的函数都可以{:4_167:}

hsrzq 发表于 2024-6-24 10:20:08

你写了这人中断函数的话,这个函数会就会占用0x63这个地址而已,其它没影响。
至于说程序跑飞的话,连当前中断点的栈都没入,更是救不回来了
页: [1]
查看完整版本: 程序中写中断函数与没写中断函数的区别