飘落的风
级别: 家园常客
精华主题: 0
发帖数量: 90 个
工控威望: 947 点
下载积分: 992 分
在线时间: 66(小时)
注册时间: 2020-03-17
最后登录: 2021-08-30
查看飘落的风的 主题 / 回贴
楼主  发表于: 2020-09-18 13:35
中断程序的执行顺序是这样子的吗?在主程序工作扫描时,一旦产生中断,便会进入中断程序,且只执行一个扫描周期,一个扫描周期执行完成返回主程序继续扫描。下面这段通过中断一键启停的程序理解不了,求前辈们指导,如下图:
 
 
 在主程序中开启中断,当I0.0的上升沿信号到来时进入INT0中断程序,置位Q0.0。此时,是否返回主程序?如果返回主程序,下次的
I0.0的上升沿信号到来不还是先进入
INT0吗?

按程序功能,应该是停留在INT0中,等待下次
I0.0的上升沿信号进入
INT1,从而复位Q0.0。

求前辈们给予解答



飘落的风
级别: 家园常客
精华主题: 0
发帖数量: 90 个
工控威望: 947 点
下载积分: 992 分
在线时间: 66(小时)
注册时间: 2020-03-17
最后登录: 2021-08-30
查看飘落的风的 主题 / 回贴
1楼  发表于: 2020-09-18 13:37
在主程序中开启中断,当I0.0的上升沿信号到来时进入INT0中断程序,置位Q0.0。
此时,是否返回主程序?如果返回主程序,下次的I0.0的上升沿信号到来不还是先进入INT0吗?
按程序功能,应该是停留在INT0中,等待下次I0.0的上升沿信号进入INT1,从而复位Q0.0。

求前辈们给予解答
飘落的风
级别: 家园常客
精华主题: 0
发帖数量: 90 个
工控威望: 947 点
下载积分: 992 分
在线时间: 66(小时)
注册时间: 2020-03-17
最后登录: 2021-08-30
查看飘落的风的 主题 / 回贴
2楼  发表于: 2020-09-18 15:11
明白了,主要原因是没搞明白ATCH的作用,ATCH并不是用来调用中断,而是用来将中断事件号和中断程序进行连接,所以在主程序进入中断程序0后置位Q0.0,并把沿中断和中断程序1连接起来,返回主程序;下一次中断就是进入中断程序1后复位Q0.0,并把沿中断和中断程序0连接起来,返回主程序,以此反复,从而实现一键启停