This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

请教:MSP430 PWM信号输出个数的控制

Other Parts Discussed in Thread: MSP430F149

我在用MSP430F149的定时器产生100KHZ的信号输出时,想控制PWM信号输出的个数。比如在输出10个周期的100KHZ的信号后,就停止输出,请问这个怎么解决?

谢谢!

  • 通过计数器计数,或者通过端口检测电平变化的次数来确定输出的周期数。具体的方法就是在你输出的端口再接到一个定时计数器或者有中断功能的端口上来实现,软件就是我说的意思,你自己编吧。最好在中间加个缓冲器,防止有意外发生。

  • 如果我需要10个周期的PWM驱动信号。这个时候,外部端口检测到第九个PWM信号后,开始处理关断PWM模块,请问何时关呢,?

    如果检测到第10个周期信号的到来,这是中断处理关断PWM,这期间是需要时间的,可能等到关断时,已经有了10.2个周期的PWM信号了。

  • 你好!

    给你一个建议,在数到第九个时,修改定时器中断的比较寄存器值,进中断5个clk,你再看一下你的中断处理函数的反汇编里面花了几个clk,可以倒推出第十次PWM到来时需要提前控制的周期数,这样能够尽量做到误差在2个cpu clk内。

  • 使用定时器中断产生PWM,不用外部检测。中断一次改变一次端口输出电平,中断两次为一个周期,若两次之间没有改变定时器初值,则为50%占空比的PWM,若产生其它占空比PWM改变定时器初值即可(但要保证输出为你要求的100KHZ)。使用全局变量控制中断次数为20次,即完成一次10个周期的PWM输出;计数器归零,关定时器,等待下一次需要输出时直接启动定时器即可