應用MSP430F149單片機的超低頻波形發(fā)生器
3 用MSP430F149實(shí)現PWM功能的軟件設計
在該超低頻波形發(fā)生器的軟件設計中,主要應用到了以下幾個(gè)功能模塊:Timer_B定時(shí)器、Timer_A定時(shí)器、CPU寄存器、片內的數字控制晶振以及XT1低功耗振蕩器,其主程序流程圖如圖3所示。
3.1 穩定DCO頻率模塊
DCO 實(shí)質(zhì)上是一個(gè)RC振蕩器,具有RC振蕩器的特點(diǎn)。其在頻率的設置和轉換上不準確,但由于它是數字控制的振蕩器,可以通過(guò)一個(gè)已知的頻率穩定的晶振如 32768Hz手表晶振來(lái)進(jìn)行校準,使DCO達到準確的頻率。因為MSP430F149不含有鎖頻環(huán)數字邏輯,所以只有通過(guò)軟件進(jìn)行“軟鎖頻”校準 DCO,這十分重要。
程序如下:
Setup_TA mov #TASSEL1+TACLR,TACTL;設置TA時(shí)鐘SMCLK
Setup_CC2 mov #CCIS0+CM0+CAP,CCTL2;設置CCR2,輸入信號:;ACLK,捕獲模式
Bis #MC1,TACTL;設置Timer_A:連接模式
Test_DCO bit #CCIFG,CCTL2;檢測捕獲標志位
jz Test_DCO
bic #CCIFG,CCTL2 ;清除標志位
AdjDCO mov CCR2,R14
;R14=捕獲的SMCLK值
sub R15,R14;R14=捕獲SMCLK的差值
mov CCR2,R15;上次捕獲的SMCLK值
com #Delta,R14 ;Delta=SMCLK/ACLK
jlo IncDCO
jeq DoneFLL
DecDCO dec.b DCOCTL ;調整DCO
jmp Test_DCO
IncDCO inc.b DCOCTL
Jmp Test_DCO
DoneFLL clr CCTL2 ;停止CCR2
Clr TACTL ;停止Timer_A
評論