中断里调用子函数比较好还是置位标识符比较好

2019-10-11 16:07发布

在中断程序比较长的情况下,是直接调用子函数比较好好,还是置位标识符,后面再查询操作比较好?中断里调用的子函数还是算在中断里吗?中断函数过长会发生中断冲突,置标识符再查询又会丢失数据,怎么处理比较好?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
hh312
1楼-- · 2019-10-11 20:11
这是硬伤,两次中断时间间隔如果定下来,那么事情肯定要在这段时间内完成,否则必定丢数据,不管用那种方法都一样。
在中断里调用函数肯定算中断,最好用inline把函数嵌入,节约点调用函数的时间。如果是在外面查询标识符,不但运算量多了,且事情会更复杂,必须考虑外面执行了一半时又中断会发生什么影响,保证两者不互相干扰。
hh312
2楼-- · 2019-10-11 20:24
 精彩回答 2  元偷偷看……
爱娟娟
3楼-- · 2019-10-12 00:58
标识符定义成全局变量也会丢失数据吗
31兔子
4楼-- · 2019-10-12 04:55
hh312 发表于 2017-3-15 12:56
对了,我有个特殊例子,楼主可以参考一下。比如串口通讯,每个数据要中断一下,但是我需要接收一个数据包然 ...

受教了,这就试试
31兔子
5楼-- · 2019-10-12 07:29
爱娟娟 发表于 2017-3-15 14:43
标识符定义成全局变量也会丢失数据吗

会的,主程序里要做的事情太多的话,等到检查标识符时,串口可能已经收了好几次数据了,那前几次的就只有覆盖掉了
小陀螺爱炒蛋
6楼-- · 2019-10-12 07:42
越短越好,其实驱动程序几种设计模式,中断响应只是其中之一,很多驱动采用polling状态标识的方式,比如以太网,我的建议是中断里面只需要设置标识就退出吧,至于响应交给其他代码响应

一周热门 更多>