本帖最后由 martinhu 于 2021-2-19 18:25 编辑
楼主观察的很仔细,ADT的stop命令之后,并不一定会立即生效,会过n个pclk时钟之后才生效(n为ADT时钟分频的系数),在1分频的时候这个现象不明显,如果ADT分频多了,这个现象更明显。
关于ADT的cnt的清零,其实ADT里面有硬件启动、停止、清零寄存器,
如果你用的事件刚好是可以作为ADT的触发事件,
那么选择事件之后,
在对应的硬件清零寄存器内使能这个事件,就可以达到自动清零CNT的目的。
如果这个事件也设置为捕获事件,那么当这个事件到来的时候,可以先捕获CNT的值,再清零CNT。
这里仅仅例举的是内部模块对ADT的触发的使用,也有引脚的触发事件
F005的事件触发,需要使能输出触发模块的中断,并且在触发之后清零中断标志
可以参考这个高级定时器输入有关的应用笔记
高级定时器ADT的输入信号处理Rev1.0.pdf
(330.55 KB, 下载次数: 12)
|