4554|5

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于子程序调用中的冲突问题. [复制链接]

我的程序里面有一个32位除16位的除法子程序,主程序和中断程序里面都调用了这个除法子程序.
现在的问题是:当我的主程序正在调用这个子程序的时候,如果这时候恰好中断了,中断程序使用了这个子程序,也改变了出发子程序里通用寄存器的值,这样当中断返回的时候,主程序继续执行这个除法子程序,计算的值就会错误了.

请问如何解决这个问题???

另:我的除法子程序功能是,R13\R12除以R11,结果放到R14中.就是魏老师书上提供的例程.

最新回复

在主程序中,当你关中断的时候,产生了中断,会自动排堆,开中断的时候按优先级别响应. 注意:在中断服务程序中开中断可能会产生中断嵌套  详情 回复 发表于 2006-4-6 23:00
 
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
可以考虑在调用子程序的前,先关中断,在程序返回后在开中断
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
哦,这倒是一个办法.
不过这样做我要先考察一下中断响应的问题.
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
我在主程序里对要保护的这段程序前后加上DINT和EINT也就是在这段程序运行的时候关中断,完了再开中断。
那如果当这段程序正在运行的时候中断来了,因为关了中断所以不进中断程序。但当这段程序运行完了开了中断的时候,是不是马上进之前的中断。
还是因为关了中断,这个中断就不被响应了???

望高手赐教。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
我也碰到同样的问题,无法解决,有的地方是不能随便开关中断。能否在这样的汇编子中的开始把R4~R15都压入栈区,在程序结束时出栈。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
在主程序中,当你关中断的时候,产生了中断,会自动排堆,开中断的时候按优先级别响应.

注意:在中断服务程序中开中断可能会产生中断嵌套
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表