找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5739|回复: 3
收起左侧

单片机外部中断int0执行完以后,并不是返回原主程序的位置,各位大神帮帮忙

[复制链接]
ID:140700 发表于 2017-4-27 12:50 | 显示全部楼层 |阅读模式
     一个外部霍尔传感器控制的拍照程序,当单片机外部中断int0子程序执行完以后确无法返回主程序去执行初始化程序,而导致失控死机和tft屏花屏,试过,把中断程序放入while()中,同时把初始化程序放入中断子程序当中,这样可以受控但是有一定的几率 tft液晶屏 会花屏(有图像,但是屏幕变成有明显分割线的,且不显示图像不规则。)各位大神帮帮忙,就是想当中断子程序执行完以后,返回主程序重头开始执行。


回复

使用道具 举报

ID:162136 发表于 2017-4-28 10:29 | 显示全部楼层
估计是初始化程序过程中再次产生中断,试试在初始化完成以后再开中断。说得不对见谅。
回复

使用道具 举报

ID:123289 发表于 2017-4-29 02:01 | 显示全部楼层
如果中断未发生在程序运行至主程序的时刻,当然就不会返回主程序了。中断只返回于发生中断的那个地方。除非用非常规的手段使之发生异常转移(程序修改了堆栈里的返回地址)
回复

使用道具 举报

ID:111634 发表于 2017-4-29 21:48 | 显示全部楼层
c51程序能自动完成中断后返回主程序,不需在程序中画蛇添足。你的问题可能就是画蛇添足了,你说:“把初始化程序放入中断子程序当中”,毛病就出在这里。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表