打印

想用TIM1的PWM实现DA输出,应该使用哪个中断?

[复制链接]
3044|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
a_bb|  楼主 | 2008-3-26 17:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用了例程中的TIM1,并将PWM周期更改为8KHz,成功输出了duty50%的方波。
但我想输出语音,需要在8KHz每个时刻点,更新CCR1_Val,通过更改占空比实现DA输出。我想用Timer1产生8KHz的中断,我在中断子程序中实现值更新,但不知道应该使用TIM1中哪个事件中断?如何实现?请多多指教!
沙发
香水城| | 2008-3-26 17:44 | 只看该作者

请问你使用的是哪种模式?

如果使用的是PWM模式,则可以用Update Interrupt。

使用特权

评论回复
板凳
a_bb|  楼主 | 2008-3-26 22:08 | 只看该作者

是PWM模式

是的,并且是count up,请问中断何时发生?是当计数器值增加到预定值吗?

使用特权

评论回复
地板
香水城| | 2008-3-27 08:32 | 只看该作者

每个周期中断一次

使用特权

评论回复
5
a_bb|  楼主 | 2008-3-28 10:40 | 只看该作者

搞了个曲线救国

用TIM1做8K PWM输出,又用TIM2做8K定时中断,在ISR中更新TIM1->CCR1以改变占空比,试验输出1K正弦波,用示波器观察TP4(EMbest板),发现波形抖动,有毛刺,不很理想,设法改进中!

使用特权

评论回复
6
MicroMMU| | 2008-3-29 11:03 | 只看该作者

用中间对齐模式,TIM1_RCR=1,计数器下溢时更新

不用预装载。

使用特权

评论回复
7
a7419942| | 2008-5-23 08:34 | 只看该作者

学习中,学习中

学习中,学习中

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

98

帖子

0

粉丝