单片机程序设计,keil uVision2中编写c语言怎么执行中断后跳转?如果使用setjmp头文件,编译后出现错误

出错:C316:unterminated conditionals!或者哪位高手建议怎么在函数中断后,执行中断函数,当满足某个条件后,不在返回断点~而直接跳转到相应位置继续执行!

嵌入C代码或汇编代码,手动修改栈中的PC内容,之后结束中断函数运行。这样中断函数退出时从栈中取的就是修改后的PC,自然就能跳转到你指定的位置。
前提是你需清楚该中断入栈了哪些寄存器。追问

能再仔细一点么?怎么做,搞毕业设计苦啊!能给个例子么??那就非常感谢了!

追答

入栈出栈的代码还需要例子?
根据当前栈指针算偏移(基本的加减法)你会不会写?
存储器绝对访问你会不会写?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-18
建议你不要那样做,强制跳转到某个地方去执行,你的程序就跑飞了,也就是说执行出现错误了。
一般都是进了中断处理完事情,就跳回断点,其中涉及到单片机工作状态及寄存器管理的问题。
相似回答