2019-08-14 02:11发布
Rainday 发表于 2017-9-8 19:32 仔细分析了下你说的,就是省略了单脉冲,直接由定时器计时到t/2,产生脉冲。我的程序里面,也是把t/2作为 ...
a3748622 发表于 2017-9-8 18:37 搞这么复杂干嘛。高级定时器有PWM捕获模式的,你去看看资料。比如用TIM1获得一个高电平的时间t0,然后将TIM ...
最多设置5个标签!
输入脉冲波宽度是变化的,TIM5是输入捕获(一次捕获一个上升沿或者下降沿)计算时间t0,在下降沿到来时立即开启TIM3计时时间为t0/2,时间到则产生中断并开启TIM4输出单脉冲。程序在上面,测试结果是串口有正确的时间输出,示波器并没有单脉冲输出。请大家帮我看看出问题在哪里???
TIM5 PA0 输入捕获,TIM3定时器中断,TIM4 PB6 配置成单脉冲输出。
中断用一个就够了,假设PWM捕获模式下,你TIM1 CCR1捕获上升沿,CCR2捕获下降沿。开启CCR2中断,那么当你捕获到下降沿后,产生中断。CCR2-CCR1就是t0,把t0/2赋值给TIM2的ccr。此时经过t0/2,TIM2就会切换电平。电平持续时间(单脉冲)就是TIM2的arr-ccr。
这些都是2个TIM自动完成的,你要做的是配置好TIM1的arr、ccr,然后在TIM1的ccr2中断里给TIM2 ccr与arr赋值。最好两个定时器频率一致,计算起来就比较简单了。
听起来,很不错。唉 一看到配置寄存器就够了,刚学 不怎么懂!还是谢谢你
仔细分析了下你说的,就是省略了单脉冲,直接由定时器计时到t/2,产生脉冲。我的程序里面,也是把t/2作为你说的TIM2的定时时间,只是时间到后我加了个中断。你觉得呢
一周热门 更多>