打印

pic中断不允许重入式调用函数

[复制链接]
4137|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shiyan1532|  楼主 | 2012-7-29 18:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
sfesdm| | 2012-7-29 20:56 | 只看该作者
不是有个reentrant吗?没用过PIC单片机,不知道是不是一样的。

使用特权

评论回复
板凳
NE5532| | 2012-7-29 22:09 | 只看该作者
楼主问的C还是汇编?C不清楚,但是最简单的方法就是把函数抄一遍,或者想办法规划软件架构,不要出这种问题。汇编的话,你自己就是爷,不存在重入不重入的问题。

使用特权

评论回复
地板
misra| | 2012-7-29 22:39 | 只看该作者
很好解决。写两个函数  即便功能完全相同

使用特权

评论回复
5
dlyt_test001| | 2012-7-30 08:43 | 只看该作者
很好解决。写两个函数  即便功能完全相同
misra 发表于 2012-7-29 22:39

可以,也可以在中断中设置一个标志。
后在循环澡检测这个标志。有标志再调用那个重入函数。
不过,这样做后,调用函数的执行的实时性会有点延迟。

使用特权

评论回复
6
shiyan1532|  楼主 | 2012-7-30 11:18 | 只看该作者
我去试试这种方法 5# dlyt_test001

使用特权

评论回复
7
shiyan1532|  楼主 | 2012-7-30 11:19 | 只看该作者
有人说在中断函数前面加上 #parama level 1,不知这种方式可以不?

使用特权

评论回复
8
misra| | 2012-7-30 11:29 | 只看该作者
PIC 不让你弄 就是让你少犯错。

而你现在却千方百计的让自己出错。

所以真正想做稳定性高的产品,最好的办法就是写两个函数  即便功能完全相同。

使用特权

评论回复
9
shiyan1532|  楼主 | 2012-7-30 11:42 | 只看该作者
pic不让中断与主函数公用函数,如果想要在中断内时间刷新显示等等的,该怎么办呢?用标志位么?然后在主函数内判断标志位。 8# misra

使用特权

评论回复
10
misra| | 2012-7-30 12:04 | 只看该作者
对啊 全局变量啥的 标志为啥的

使用特权

评论回复
11
ocon| | 2012-7-30 14:08 | 只看该作者
一个好的架构是不应该出现重入风险的。

使用特权

评论回复
12
sinonion| | 2012-7-30 14:16 | 只看该作者
第二次看到有人问这个问题

#pragma interrupt_level 1

使用特权

评论回复
13
shiyan1532|  楼主 | 2012-7-30 15:38 | 只看该作者
多些大家指点啊,我决定用标志位试试。

使用特权

评论回复
14
116399651| | 2012-7-30 17:49 | 只看该作者
哈哈!原来这样

使用特权

评论回复
15
wb8899| | 2012-12-16 22:12 | 只看该作者
郁闷,今天也是碰到这个问题,搞了一天,一步一步删着调试,我在引脚电平中断里调用一个与主函数共用的子函数,原来编译后的FLSH空间为39%,调用后变为89%,就一句调用语句,在中断里分别判断并调用两个子函数中的其中一个,居然1KFLSH不够用,出错

使用特权

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

本版积分规则

48

主题

1158

帖子

0

粉丝