新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > msp430單片機實現PWM

        msp430單片機實現PWM

        作者: 時間:2016-11-11 來源:網絡 收藏
        PWM信號是一種具有固定周期(T)不定占空比(t)的數字信號,如下圖所示。如果PWM信號的占空比隨時間變化,那么通過濾波之后的輸出信號將是幅度變化的模擬信號。因此通過控制PWM信號的占空比,就可以產生不同的模擬信號。

        本文引用地址:http://www.104case.com/article/201611/316571.htm

        msp430單片機利用Timer_A或者Timer_B可以很好的實現產生任意PWM信號。

        Timer_A定時器的計數器工作在增計數方式,輸出采用模式7(復位/置位模式),則可以利用CCR0控制PWM波形的周期,用某個寄存器CCRx控制占空比。原理圖如下:(注:這幅圖片為網上下載,他用的是Timer_B定時器,故輸出TBx)

        摘錄下面一段:http://www1.ti.com.cn/customer/article/article12161.asp

        將Timer_B配置為16-bit、up模式。在這種模式下計數器計數至CCR0,然后復位從0開始重新計數。給CCR0賦值255也就意味著計數器的長度為8bits。CCR1和TB1用于產生正弦波,CCR2和TB2用于產生直流電平。輸出模式都選為模式7,即PWM復位/置位模式。如圖2所示,在這種模式下,復位后每一個定時器的輸出都為高電平,直到計數器達到各自的CCRx值時變為低電平,當計數器達到CCR0時再置位。也就是說CCRx的值決定了各自正脈沖的寬帶。若CCRx的值是變化的,就可以產生可變寬度的脈沖,下文中的正弦波就是用這種辦法產生的;若不變則產生的是固定寬度的脈沖,下文中的直流電平就是這樣產生的。最后SMCLK用作Timer_B的時鐘源。系統采用32768Hz的鐘表晶振,通過采用內部硬件鎖頻環FLL(frequency-locked-loop),來校準DCO(DigitalControlOscillator)頻率為系統提供MCLK/SMCLK時鐘。

        示例程序:

        #include
        void main(void)
        {
        WDTCTL = WDTPW + WDTHOLD; // Stop WDT
        P1DIR |= 0x0C; // P1.2 and P1.3 output
        P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 otions


        CCR0 = 512-1; // PWM Period
        CCTL1 = OUTMOD_7; // CCR1 reset/set
        CCR1 = 384; // CCR1 PWM duty cycle
        CCTL2 = OUTMOD_7; // CCR2 reset/set
        CCR2 = 128; // CCR2 PWM duty cycle


        TACTL = TASSEL_2 + MC_1; // SMCLK, up mode


        _BIS_SR(LPM0_bits); // Enter LPM0
        }



        關鍵詞: msp430單片機PW

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 南溪县| 内丘县| 营口市| 新余市| 隆化县| 塔河县| 温宿县| 沂源县| 开原市| 南部县| 柳林县| 来宾市| 田林县| 芷江| 门源| 阳高县| 梅河口市| 南宁市| 湘阴县| 桂平市| 南通市| 青浦区| 会宁县| 旬阳县| 玉溪市| 克山县| 化德县| 桃源县| 松阳县| 桂阳县| 九寨沟县| 马龙县| 金溪县| 景谷| 鱼台县| 江孜县| 杨浦区| 福安市| 佛冈县| 道孚县| 洛川县|