2019-03-23 18:39发布
zhaojun_xf 发表于 2015-3-27 11:54 直接用库多好,如果想用寄存器,为什么不参照库代码就可以指定怎么处理了呢?
damiaa 发表于 2015-4-1 15:19 应该是你先读计数器的值,捕获值和你上次的值比较吧。 比如你要测试脉冲宽度,上升缘何下降缘两次捕获值相减。能不能清除不记得了。
huo_hu 发表于 2015-4-1 17:28 额...操作失误给编辑了 回答: UG位相当于强制产生溢出信号,这个不怎么用的到,因为很容易乱套.它所说的避免的情况是软件清除了CNT必然产生溢出中断... 捕获信号来的时候就把CNT装到通道里,就这么简单,和开不开通道中断是没有关系的.使用捕获的时候不需要将计数归0,一个定时器可能有多个通道做捕获输入,如果全要把计数归0多个通道的协调统一是个麻烦事. 捕获无非是想要个时间差,两次捕获的数一减就是时间差,如果这个差值是负也就是后次计数小于于前次说明两次捕获间有计数归0,那么结果再取一次反就是了.这块儿是不需要溢出中断介入的,唯一的前提是两次捕获时间差不大于计数回0周期,如果你的信号不能保证这一点的时候需要开启溢出中断,溢出的时候再累加个周期值就OK了.
最多设置5个标签!
谢谢你的回复,因为第一次用st的芯片,捕获的过程不理解,库函数怎么调用就不会了。如果设置了TIMx_CR1寄存器中的URS位(选择更新请求) ,设置UG位将产生件UEV但不设置UIF标志(因此不产生中断和DMA请求),这是为了避免在发生捕获事件并清除计数器时,同时产生更新和捕获中断。”怎么理解?(如果设置了TIMx_CR1寄存器中的URS位(选择更新请求) ,设置UG位将产生件UEV同时设置UIF,是不是发生捕获时间的同时能够清除计数器,且能产生更新和捕获中断呢?)”
比如你要测试脉冲宽度,上升缘何下降缘两次捕获值相减。能不能清除不记得了。
我要做捕获计算周期,希望每次上升沿的时候捕获,记录计数器的值,然后进入终端中将计数器的值清除,在从零开始,进入下一次、、、、、、,不知这样可行否?
明白了许多,谢谢你的悉心回复。
一周热门 更多>