高中生
最后登录1970-1-1
在线时间 小时
注册时间2017-7-22
|
本帖最后由 Dandri 于 2017-7-22 10:33 编辑
我在比赛的时候需要比较准确测量方波的频率,想直接用TIM的通用定时器做输入捕捉,开始都想好了,但是写到中断的时候,忽然发现,假如我都用 TIM2 的四个通道,每次中断都是进入的 这 TIM2 的中断,虽然我可以使用库函数:
- TIM_GetITStatus (TIM2, TIM2_IT_CCx)
复制代码 来获取是哪个通道 产生了 输入比较中断,但是,我在计数的时候,当要被捕获的信号的周期大于定时器的最长定时时,定时器就会溢出,产生更新中断,所以会用到
- if (TIM_GetITStatus(GENERAL_TIM2,TIM_IT_Update) != RESET)
- {
- TIM_ClearITPendingBit ( GENERAL_TIM2, TIM_FLAG_Update );
- }
复制代码 这个更新中断,用于判断定时溢出的次数,但是这个 更新中断是对 TIM2 这个定时器有效的,也就是说,对每个测量通道都有效啊,那我假如同时测两个信号频率的时候,肯定会用到两个通道,这样的话更新中断就乱了,不知道是哪个产生的更新中断诶,请问这要怎么解决啊,谢谢~
|
|