新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機入門系列(25)AVR PWM OC0

        AVR單片機入門系列(25)AVR PWM OC0

        作者: 時間:2016-12-03 來源:網絡 收藏

        系統功能

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

        AVR內部脈寬調制OC0輸出實驗,用LED指示PWM的頻率,在PWM速度較低時,可觀察到LED的閃爍。

        硬件設計

        AVR主控電路原理

        軟件設計

        //目標系統:基于AVR單片機

        //應用軟件: ICC AVR

        /*01010101010101010101010101010101010101010101010101010101010101010101

        ----------------------------------------------------------------------

        實驗內容:

        AVR內部脈寬調制輸出實驗,用LED指示PWM的頻率,在PWM速度較低時,可觀察到LED的閃爍。

        ----------------------------------------------------------------------

        硬件連接:

        將UserLed指示燈連接至PWM的端口PB3/OC0。

        ----------------------------------------------------------------------

        注意事項:

        (1)若有加載庫程序,請將光盤根目錄下的“庫程序”下的“ICC_H”文件夾拷到D盤

        (2)請詳細閱讀:光盤根目錄下的“產品資料開發板實驗板SMK系列SMK1632說明資料”

        ----------------------------------------------------------------------

        10101010101010101010101010101010101010101010101010101010101010101010*/

        #include

        #include

        #define OC0_OUT_ENDDRB |= 0b00001000

        /*--------------------------------------------------------------------

        程序名稱:定時器0初始化程序

        程序功能:定時器作PWM使用,設置PWM的工作模式

        注意事項:

        提示說明:

        輸入:

        返回:

        --------------------------------------------------------------------*/

        void timer0_init(void)

        {

        TCCR0 = (1<||(1<||(1<|||(1<|(1<||(1<||(1<||(1<||(1<||(1<|||(1<|(1<||||(1<|<|(1<|(1<|(1<|(1<||||(1<||(1<|<|(1<|<|(1<|||(1<||(1<|(1<||(1<||(1<||||<|(1<|||(1<|(1<|(1<|<|<|||(1<||<|(1<||(1<||<|<|||(1<|<||(1<|(1<||||(1<|<|(1<|(1<|(1<|(1<||||(1<||(1<|<|(1<|<|(1<|||(1<||(1<|(1<||(1<||(1<||(1<|||(1<|(1<|||<|(1<|(1<|(1<||(1<||(1<||(1<|(1<|(1<|||(1<|(1<|(1<||(1<||(1<

        /*

        WGM01=1; WGM00=1; --> fast PWM modle

        COM01=1; COM00=0; -->比較匹配時set OC0 pin

        CS00=1; --> timer0 source不經過任何分頻,直接為Clk,使得PWM可以工作得足夠快

        */

        TCNT0 = 0x00;//設置TC0計數寄存器初值

        OCR0 = 0x10;//輸出比較寄存器初值,設置該值可用于調節OC0輸出占空比

        }

        /*--------------------------------------------------------------------

        程序名稱:

        程序功能:

        注意事項:

        提示說明:

        輸入:

        返回:

        --------------------------------------------------------------------*/

        void main(void)

        {

        OC0_OUT_EN;//為允許PWM工作,需設置PB3為輸出

        timer0_init();

        SEI();

        while(1);

        }

        系統調試

        改變PWM初始化代碼的如下兩個語句的賦值:

        TCNT0 = 0x00;//設置TC0計數寄存器初值

        OCR0 = 0x10;//輸出比較寄存器初值,設置該值可用于調節OC0輸出占空比

        從LED的閃爍頻率可以看出,改變了PWM的頻率。



        關鍵詞: AVR單片機PWMOC

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 乌拉特前旗| 宝应县| 禹州市| 岫岩| 长宁县| 泰顺县| 措美县| 武强县| 德保县| 静宁县| 阿城市| 乌拉特前旗| 塔城市| 墨竹工卡县| 广宗县| 龙游县| 太康县| 泰顺县| 霍林郭勒市| 阿荣旗| 镇沅| 永福县| 扎兰屯市| 合作市| 全南县| 苏尼特左旗| 印江| 高青县| 威信县| 九台市| 利津县| 莎车县| 宿迁市| 吉首市| 隆尧县| 天台县| 井冈山市| 鄢陵县| 大渡口区| 苗栗市| 镇原县|