你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【伪代码】中断和轮询哪个反应快一些?

[复制链接]
beary 提问时间:2016-6-27 10:50 /
比如我要等一个管教是0,取名叫GPIOA_PIN1假设有一个变量是read_failing,在中断里写1,初始化为0

假设我开了中断,是下降沿激活
那么中断方式可以用
while(1)
{
  if(read_falling)
  {
        read_failing = 0;
       ........
  }

}

轮询方式的话可以用这样的
while(1)
{
    while(!READ_GPIOA_PIN1);//这里就一直等待这个脚变成0
     .............................


}

不考虑代码的其他用途和其他代码,这两种方式哪种速度快一些,更好一些呢?





收藏 评论3 发布时间:2016-6-27 10:50

举报

3个回答
回答时间:2016-6-27 14:12:14
要根据实际应用来做,如果只是简单的测试,可以这么做。
还要考虑其他的代码运行。不能在这里死等,还是用if()的方式比较好些。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 赞一个!

查看全部评分

moyanming2013 回答时间:2016-6-27 11:24:28
你如果是管脚变化频率不高,那么肯定是中断方式。
如果是每次管脚变化跟随一堆的数据,是中断里面有轮询。
lzts 回答时间:2016-6-27 12:50:24
你这样写反应快的肯定是轮询(你这就是查询)方式. 中断是有响应时间的(执行完当前指令后还要保护当前地址准备中断后返回). 查询不受中断影响的话反应是最快的(本次检测中改变,下次就能检测到).

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 很给力!

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版