单片机使用C语言时,中断子程序在主程序中是怎样被调用的?各位helpme!

单片机使用C语言时,中断子程序在主程序中是怎样被调用的?各位helpme!,第1张

中断是硬件入口的无须主程序调用,不同的单片机入口地址不同但地址固定,应该在头文件有定义。发生中断时硬件把当前地址入栈然后跳到中断地址去那里通常只是跳转指令,c编译时会把它指向中断子程序。返回时会返回到中断处继续执行。

如果是mainasm中有这句话$INCLUDE(RESETASM),简单的说就是在编译mainasm前,编译器先把RESETASM这个文件的所有语句放到main文件中,然后再编译main,相当于RESETASM是mainasm的一部分代码。
这样设计的话,要求工程里不能再单独编译连接RESETASM,这样会出现同名的警告。另一点,RESETASM中不能有END的结束符,否则编译器在编译到END后面的代码就不编译了,你的main函数实际就没有被编译,这可能是你烧到开发板上不行的原因。
具体没看到代码,先做如上猜想。不过如果有调试环境的话,单步debug应该能很快发现问题。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存