牛卧堂MCU技术交流

标题: M487计时器抖动是怎么来的? [打印本页]

作者: BOEINGNG    时间: 2024-5-8 16:47
标题: M487计时器抖动是怎么来的?
我用M487的TIMER产生了一个10kHz的周期性的中断,TIMER用的是外部晶振触发,我在每次中断进入的时候反转一个GPIO位,然后在示波器上观测这个GPIO位,发现相邻边沿之间有大约200ns的抖动,请问这个抖动主要是由于晶振的抖动引起的吗?还是因为别的原因?
作者: chrishu    时间: 2024-5-8 17:01
你这是软件写实现引脚翻转,执行代码是需要时间的,如果又别的优先级高的中断存在,误差会更大。可以用定时器的触发输出功能,定时到后硬件触发引脚翻转,不需要软件参与更准确。
作者: BOEINGNG    时间: 2024-5-8 17:29
chrishu 发表于 2024-5-8 17:01
你这是软件写实现引脚翻转,执行代码是需要时间的,如果又别的优先级高的中断存在,误差会更大。可以用定时 ...

执行代码需要的时间会引起抖动吗?难道不是固定的吗?
作者: chrishu    时间: 2024-5-9 09:13
BOEINGNG 发表于 2024-5-8 17:29
执行代码需要的时间会引起抖动吗?难道不是固定的吗?

那你说的抖动是指什么,可以把图贴出来看一下
作者: BOEINGNG    时间: 2024-5-9 09:26
chrishu 发表于 2024-5-9 09:13
那你说的抖动是指什么,可以把图贴出来看一下

就这个下降沿的抖动,这个是周期性的信号,用第一个信号做触发,观察第二个信号的抖动

作者: chrishu    时间: 2024-5-9 10:35
你这个是不是中断函数里翻转数据得位置写得不对啊?感觉像是多次进中断反复在进行翻转。你可以参考下面这个代码

main.zip (1.42 KB, 下载次数: 236)






欢迎光临 牛卧堂MCU技术交流 (http://nuvoton-mcu.com/) Powered by Discuz! X3.2