打印

c程序中如何从中断程序直接跳出转MAIN起始程序

[复制链接]
1434|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xchchchl|  楼主 | 2017-1-12 15:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如控制LED灯,LED灯各种闪法是按delay()延时程序控制闪亮时间,闪法是靠中断程序来切换,现在出现就是每次切换必须要等原来的闪法工作完才能转到另外一种闪法,如何能直接切换。PIC单片机里中断程序里用一个PCL=00到能实现,但是51系列不知道如何能从中断直接跳入主程序,也就是起始程序

相关下载

相关帖子

沙发
dirtwillfly| | 2017-1-12 16:51 | 只看该作者
想怎么闪就怎么闪,主要看你的程序

使用特权

评论回复
板凳
NE5532| | 2017-1-12 17:12 | 只看该作者
这样跳会导致堆栈崩溃的,你应该做的是提高进入Timer中断的频率,减少切换模式的等待时间。

使用特权

评论回复
地板
zhuyulk| | 2017-1-12 17:21 | 只看该作者
想怎么闪怎么换是程序设计要考虑呀

使用特权

评论回复
5
xxdcq| | 2017-1-18 14:32 | 只看该作者
本帖最后由 xxdcq 于 2017-1-18 14:36 编辑

C 很难实现,因为C不允许人为操作堆栈的,容易崩溃,汇编就很轻松了,可以随意操作堆栈,修改堆栈地址在一些实时性要求非常快的场合咱经常这样干
这种一般用于非特定地方中断但又需要回到特定位置的场合

使用特权

评论回复
6
lqk0819| | 2017-5-13 18:40 | 只看该作者
先在中断中做标志,触发标志退出中断,在主循环中用GOTO语句或其他办法进入开始程序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

17

帖子

0

粉丝