www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式單片機MCU開發(fā)
[導(dǎo)讀]作者在上期已經(jīng)講解完端口輸出高低電平,這章建立實例來講解PWM輸出,在所用的芯片有個為PWM輸出,就寫個PWM例程,方便大家快速上手。 這里選用8PIN的單片機進行開發(fā),引腳如下圖所示,PWM引腳為5。

概述

作者在上期已經(jīng)講解完端口輸出高低電平,這章建立實例來講解PWM輸出,在所用的芯片有個為PWM輸出,就寫個PWM例程,方便大家快速上手。 這里選用8PIN的單片機進行開發(fā),引腳如下圖所示,PWM引腳為5。 

PMS171B之PWM配置

 


tm2b寄存器是用來配置PWM的占空比的,0-7位代表數(shù)值為0-255。


  


tm2s寄存器是用來配置PWM的分頻,7位代表PWM分辨率,6-5為預(yù)分頻器,4-0位為Timer時鐘分配器。  


tm2c寄存器是Timer2控制寄存器,如果需要輸出PWM,3-2位應(yīng)該設(shè)置為10讓Timer選擇PA3,1位設(shè)置為1選擇為PWM模式。

PWM計算與配置

 


在本文中我們設(shè)置輸出為1K,30%占空比的PWM,根據(jù)上圖公式,Y=tm2[7:4],我們選擇CLK(系統(tǒng)時鐘),即0001。



/*單片機內(nèi)部RC震動時鐘為 IHRC默認為16M,因此,IHRC/4=4M,系統(tǒng)時鐘為4M*/
    .ADJUST_IC    SYSCLK=IHRC/4, IHRC=16MHz, VDD=5V;


在上篇配置IO口中,我們已經(jīng)如上圖代碼所示,設(shè)置時鐘為4M,所以Y=4M。 此時我們設(shè)置預(yù)分頻器為16,即tm2s[6:5]設(shè)置為10,根據(jù):輸出頻率=Y÷[256S1(S2+1)]可以得知S2配置為0;輸出頻率=4M÷[25616(0+1)]=976Hz。tm2s配置如下所示:



tm2s=0b0_10_00000; //  8-bit PWM ,預(yù)分頻=16,分頻 = 0



設(shè)置30%占空比則為tm2b=255*30%=77,tm2b如下所示:


tm2b = 0x4d;//占空比 30%4d 50%7f 70%b4


設(shè)置完之后需要打開PWM模式,tm2c設(shè)置如下所示:


tm2c = 0b0001_10_1_0; // 系統(tǒng)時鐘,輸出 =PA3,PWM 模式

PWM輸出完整代碼


#include    "extern.h"http://是程序的頭文件。
BIT   PWM     :PA.3;  //端口定義
void    FPPA0 (void)//相當(dāng)于程序的 main() 函數(shù)。
{
 /*單片機內(nèi)部RC震動時鐘為 IHRC默認為16M,因此,IHRC/4=4M,系統(tǒng)時鐘為4M*/
    .ADJUST_IC    SYSCLK=IHRC/4, IHRC=16MHz, VDD=5V;
/*********PWM*********************/
tm2ct = 0x0; 
tm2b = 0x4d;//占空比 30%4d 50%7f 70%b4
//S1= tm2s[6:5] : 預(yù)分頻器設(shè)定值(1, 4, 16, 64)
//S2 = tm2s[4:0] : 分頻器值(十進制,0 ~ 31)
//輸出頻率 =4MHz÷ (   256 *   S1 (16) * (S2+1)1)  =  976Hz
tm2s = 0b0_10_00000; //  8-bit PWM ,預(yù)分頻 = 16 ,分頻 = 0
tm2c = 0b0001_10_1_0;  //  系統(tǒng)時鐘,輸出 =PA3 , PWM 模式
    while (1)
    {
        .delay 4000*500;
    }
}

演示效果


聲明:該篇文章為本站原創(chuàng),未經(jīng)授權(quán)不予轉(zhuǎn)載,侵權(quán)必究。
換一批
延伸閱讀
關(guān)閉