[MCU] 这个注意事项

[复制链接]
877|16
 楼主| wyjie 发表于 2019-8-18 18:31 | 显示全部楼层 |阅读模式

void Int1_Routine(void) interrupt 2{
_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;
-------
-------
}

编译后,有个注意的事项,不知对程序有无影响。
warning C275: expression with possibly no effect
zhenykun 发表于 2019-8-18 18:34 | 显示全部楼层
中断中,能用 nop()语句吗?
jlyuan 发表于 2019-8-18 18:36 | 显示全部楼层


_nop_();
而不是
_nop_;
yszong 发表于 2019-8-18 18:39 | 显示全部楼层

只要不超过中断时间应该可以
 楼主| wyjie 发表于 2019-8-18 19:09 | 显示全部楼层
中断还有时间,一般怎么算这个时间?
dengdc 发表于 2019-8-18 19:19 | 显示全部楼层
只有定时中断才会有时间,当然任何中断都不宜执行时间太长,因为中断往往只是处理最关键的响应。执行太长会影响整个程序的执行。而且中断里面尽量不要加延时,虽然语法上可以。
dengdc 发表于 2019-8-18 19:21 | 显示全部楼层

_nop_();
是空指令。
jiahy 发表于 2019-8-18 19:25 | 显示全部楼层
可以用。。_nop_指令意思就是在原地踏步下,也就一条指令的时间几Us,一般用中断定时不会那么小。。所以可以用。。。
huangchui 发表于 2019-8-18 19:28 | 显示全部楼层

根据需要而定,一般中断中代码执行时间如果没超过中断时间的2/3,就没问题
lizye 发表于 2019-8-18 19:35 | 显示全部楼层
理论上是可以的
shimx 发表于 2019-8-18 19:39 | 显示全部楼层
中断一般来说都是尽量短,对于有些单片机,需要重新赋初值,如果你延时过长,有可能导致在主程序中运行的时间过短,造成频繁中断,后果有时会很严重
jiaxw 发表于 2019-8-18 19:42 | 显示全部楼层
最好不要用吧,因为用了会占用CPU时间,影响效率,中断是尽力在最短的时间里完成的。
liliang9554 发表于 2019-8-18 19:44 | 显示全部楼层
中断里可以执行任何指令,包括空操作,是否有必要或效率什么的则是另一回事。
jiajs 发表于 2019-8-18 19:49 | 显示全部楼层
理论上中断可以运行任何程序,但考虑到整体程序的效率和程序执行的稳定性终端的时间越小越好。
zhanghqi 发表于 2019-8-18 19:52 | 显示全部楼层
有时候也是没办法的事情,比如更新PWM的占空比,要有较复杂的运算。
zhenykun 发表于 2019-8-18 19:55 | 显示全部楼层
该语句的用作短时间延时的。
 楼主| wyjie 发表于 2019-8-18 19:58 | 显示全部楼层
其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

927

主题

12706

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部