新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 飛思卡爾初學(xué)之PWM調(diào)試筆記

        飛思卡爾初學(xué)之PWM調(diào)試筆記

        作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
        M9S12XS128單片機(jī) 有8個獨(dú)立的PWM輸出通道,其中每相鄰的兩個可以級聯(lián)成一個通道。

        本文著重應(yīng)用實(shí)踐,理論性的東西少談為妙,因?yàn)槔碚摰臇|西資料上都有。想借此平臺記錄下調(diào)試心得以免日后遺忘,因本人也是初學(xué)該款單片機(jī),難免有錯誤之處,還希望達(dá)人指點(diǎn)。

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

        PWM應(yīng)用步驟:

        一、PLL初始化,這一步應(yīng)該說不算PWM設(shè)置的內(nèi)容,但是又必須設(shè)置,因?yàn)檫@關(guān)系著PWM周期值的計算。從開發(fā)板上的晶振來看是16M,但是總線時鐘卻并不是16M,S12單片機(jī)里面有個鎖相環(huán)設(shè)置,要設(shè)置好了才準(zhǔn)確。具體這個PLL函數(shù)我還沒去了解?,F(xiàn)在是現(xiàn)成套用。

        void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
        { //鎖相環(huán)時鐘=2*16*(2+1)/(1+1)=48MHz
        CLKSEL=0X00;
        PLLCTL=0XE1;
        REFDV = 1; //總線時鐘=48/2=24MHz
        SYNR = 2;
        _asm(nop); // BUS CLOCK=24M
        _asm(nop);
        while (!(CRGFLG & 0x08)) ;
        CLKSEL = 0x80; //選定鎖相環(huán)時鐘
        }

        用了這個PLL初始化函數(shù)以后,總線時鐘就是24M了。

        二、PWM相關(guān)設(shè)置

        1、禁止PWM。PWME

        2、選擇時鐘源。PWMPRCLK, PWMSCLA, PWMSCLB ,PWMCLK。 其中通道0 、1、4、5 可以選擇 ClockA ClockSA。通道2、3、6、7 可以選擇ClockB ClockSB

        其中值得說明的是ClockA或ClockB是通過總線時鐘預(yù)分頻獲得的。ClockSA或ClockB是分別對ClockA ClockB再次進(jìn)行分頻獲得的。分頻系數(shù)的設(shè)置都有相應(yīng)的寄存器進(jìn)行設(shè)置。后面會提到。

        3、極性設(shè)置 PWMPOL 。極性是指初始時通道輸出的是高電平還是低電平。這個是關(guān)系到占空比的計算。

        4、選擇對齊方式 PWMCAE。對齊方式有左對齊和中間對齊兩種。兩種方法在計算占空比時也有差別。

        5、設(shè)置周期和占空比。PWMPERx PWMDTYx.

        6、使能PWM。PWME。

        相關(guān)寄存器列表如下。




        PWM使能寄存器。相應(yīng)的每一位控制每一個通道。如果是級聯(lián)方式,那么使能將由高通道的使能決定。比如

        通道0和通道1級聯(lián)成16位的PWM,那么這個級聯(lián)的PWM的使能就由 PWME_PWME1 決定。


        PWM時鐘選擇。0,1,4,5通道 PWMCLK_PCLK(0 or 1 or 4 or 5) =0 (則選擇CLOCKA) =1 (則選擇CLOCKSA)


        PWM時鐘源預(yù)分頻寄存器

        分頻系數(shù)的對照表格。 E 代表總線時鐘,也就是前面PLL出來的 Bus Clock。


        上一頁 1 2 下一頁

        關(guān)鍵詞: 飛思卡爾PWM調(diào)試筆

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 吴桥县| 霞浦县| 西乡县| 金川县| 道孚县| 大英县| 许昌县| 永安市| 石门县| 浙江省| 德安县| 常宁市| 景洪市| 雷波县| 阳泉市| 泰宁县| 固镇县| 肃北| 阿拉尔市| 洪雅县| 福安市| 沧州市| 金塔县| 洛川县| 独山县| 本溪市| 玛曲县| 资源县| 上饶县| 类乌齐县| 巴塘县| 偏关县| 荥阳市| 天气| 吴江市| 普宁市| 镇坪县| 观塘区| 土默特右旗| 孝昌县| 聊城市|