查看: 1746|回复: 12

[其他] arduino uno的中断响应时间

[复制链接]

该用户从未签到

发表于 2017-10-12 10:35 来自手机 | 显示全部楼层 |阅读模式
大家好   我用来测方波的个数  方波大概200kHz,   用的中断上升沿计数  中断内只有一句  i++;  每次上升沿中断来了  i加1   主程序中用串口输出i的值到电脑上,就没有其他的语句了。   现在情况是丢数,不固定,   不知道中断响应时间为多少?200kHz是不是太高了?   后来我改用查询的方法测上升沿,效果一样。自我认为avr的指令够快了,200k的频率不至于测不到  望大家指点一二 ,谢谢

该用户从未签到

发表于 2017-10-12 10:40 | 显示全部楼层
我记得在中断函数中是不能用serial print的,还有就是你的变量i是否声明为volatile类型。这两个问题是我所能想到的。

该用户从未签到

 楼主| 发表于 2017-10-12 11:06 来自手机 | 显示全部楼层
kirbyklein 发表于 2017-10-12 10:40
我记得在中断函数中是不能用serial print的,还有就是你的变量i是否声明为volatile类型。这两个问题是我所 ...

谢谢回答  串口发送在  loop中,变量i未声明volatile,10k的方波正常  只是到200k就不正常了

该用户从未签到

发表于 2017-10-12 12:01 | 显示全部楼层
请问你的200khz频率是怎么生成的。
一个中断指令最少需要花2.625 us
还有serial在9600bps下发送一个字节需要1000 us

该用户从未签到

 楼主| 发表于 2017-10-12 13:19 来自手机 | 显示全部楼层
kirbyklein 发表于 2017-10-12 12:01
请问你的200khz频率是怎么生成的。
一个中断指令最少需要花2.625 us
还有serial在9600bps下发送一个字节需 ...

200k脉动是车载cd按键板的输出信号的时钟脉冲,24个脉冲一组不停,直到松开按键。  示波器测大概200k,一个周期5us多点,串口每秒发送一次,现在我是按一下松开,计数就没准了,按理应该24的倍数。刚才测了下中断,手动触发中断,中断内让管脚高电平,从我触发到高电平出来5us,居然这么长。

该用户从未签到

发表于 2017-10-12 13:41 | 显示全部楼层
中断程序中什么都不做就要花2.6us,在加上其它指令,估计是要好久,所以这么高的脉冲漏掉也很正常

该用户从未签到

 楼主| 发表于 2017-10-12 14:57 来自手机 | 显示全部楼层
kirbyklein 发表于 2017-10-12 13:41
中断程序中什么都不做就要花2.6us,在加上其它指令,估计是要好久,所以这么高的脉冲漏掉也很正常 ...

中断里就一句 digitalWrite(5,1)   看来这一句就2us  跟51单片机一样了

该用户从未签到

 楼主| 发表于 2017-10-12 15:00 来自手机 | 显示全部楼层
kirbyklein 发表于 2017-10-12 13:41
中断程序中什么都不做就要花2.6us,在加上其它指令,估计是要好久,所以这么高的脉冲漏掉也很正常 ...

avr应该一个时钟周期一条指令  按理来说不应该 是不是arduino的指令效率太低了?周查询方法也计不准脉冲

该用户从未签到

发表于 2017-10-12 15:15 | 显示全部楼层
是不是arduino的指令效率太低了?

arduino更深的我也不是很懂。不过有篇文章你可以参考下:http://www.arduino.cn/thread-12468-1-5.html
  • TA的每日心情
    奋斗
    2018-7-3 21:30
  • 签到天数: 46 天

    [LV.5]常住居民I

    发表于 2017-10-12 15:41 | 显示全部楼层
    基于Arduino的数字示波器
    http://www.arduino.cn/thread-3703-1-1.html
    如果以上内容对你有帮助,你可以通过打赏支持作者
    高级模式  
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    Arduino Uno 电机无法正常工作问题
    Arduino Uno 电机无法正常
    如图,请问代码有什么不对的地方吗 #include #include #include double angle_r
    顔色傳感器
    顔色傳感器
    有會使用顔色傳感器的朋友嗎?請問怎樣識別紅色和藍色,當然能來段代碼就更好了
    Blink——Arduino的Hello World!
    Blink——Arduino的Hello
    本教程节选自《Arduino程序设计基础》 Arduino编程基础(零)——Blink,Arduino的He
    创客集结号项目:太阳能陀螺仪机器人
    创客集结号项目:太阳能陀
    这是一只最简单的全自动机器人,它不像居家电器一样需要电源开关,也不需要人来维护,
    关于蓝牙4.0的问题
    关于蓝牙4.0的问题
    蓝牙4.0始终进不来AT,用的是JDY08 代码 #include SoftwareSerial BT(10, 11); // 接
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表