请教各位大神,本人遇到点问题,描述如下:
功能描述:
芯片采用MSP430f4152,使用TA1输出PWM来驱动蜂鸣器,TA1的时钟使用SMCLK,整个系统进入LPM3模式,有按键后(外部中断),TA1打开,输出PWM,100ms后关闭,驱动蜂鸣器,就这么简单,MCLK和SMCLK的源均使用DCO。
现象:
1.如果我按照上述描述来做,发现在不同的电压下,SMCLK的频率会变,我采用稳压电源来调整电源电压,2.0v-3.0v之间调整,然后按键让蜂鸣器响,结果发现蜂鸣器频率不一致,用示波器去量,频率的确变了。
2.如果我不进入LPM3模式,而是直接while(0x00)或者LPM0模式,则调整电源电压,按键蜂鸣器频率不变化,再次使用示波器去量,频率也无变化。
3.如果我将TA1的时钟源改成LFXT1CLK,进入LPM3模式,则调整电源电压,也是频率无变化。
注意:因为进入LPM3模式,所以DCO是在进入中断后才会打开,这里是按键外部中断,有中断后,6us才唤醒DCO。
按理讲按键后(LPM3模式,进入外部中断),系统会6us内立即唤醒DCO,那么MCLK和SMCLK都会运行,那么此时使用SMCLK作为时钟源的TA1的PWM频率应该不变,但是却变了,这是为什么??
