工具/软件:Code Composer Studio
我有一项任务、需要将正弦 PWM 发送到 LE 二极管。 此类正弦信号的频率通过按钮进行更改、频率范围为1Hz 至16Hz。
MSP430计时器非常复杂,使用适当的输出模式(复位/设置= OUTMODE7),它们可以轻松地生成 PWM 输出,并将其发送到选定的外围设备,在我的情况下,端口4的引脚3是 LE 二极管。 因此、我使用比较寄存器 TB0CCR3来复位脉冲、使用 TB0CCR0寄存器来设置 PWM 的脉冲、所有这些都符合 SLAU401E。
问题是、有时当我将频率更改为偶数(它绝不是奇数)时、TB0CCR3寄存器似乎卡在值0x0000、并且不会改变、从而使输出为零、或者换句话说、LE 二极管不会发光。 此外、发生这种情况时没有规律性、我只能说、在奇数频率下不会发生、偶数频率下也不会发生、有时也不会有规律性发生。
中断是用汇编语言编写的、主程序是用 C 语言编写的
以下是代码: