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

[复制链接]
 楼主| 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 | 显示全部楼层
想怎么闪怎么换是程序设计要考虑呀
xxdcq 发表于 2017-1-18 14:32 | 显示全部楼层
本帖最后由 xxdcq 于 2017-1-18 14:36 编辑

C 很难实现,因为C不允许人为操作堆栈的,容易崩溃,汇编就很轻松了,可以随意操作堆栈,修改堆栈地址在一些实时性要求非常快的场合咱经常这样干
这种一般用于非特定地方中断但又需要回到特定位置的场合
lqk0819 发表于 2017-5-13 18:40 | 显示全部楼层
先在中断中做标志,触发标志退出中断,在主循环中用GOTO语句或其他办法进入开始程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

6

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部