在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            ATmega128(PWM—time 0)

            作者: 時(shí)間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
            //atmega128的定時(shí)器實(shí)現(xiàn)快速PWM輸出示例程序,定時(shí)器0溢出中斷的方式

            //輸出PWM波形驅(qū)動(dòng)發(fā)光二極管,亮度由暗到滅,呈閃爍狀態(tài)
            //樣值采取正弦波公式,示例如下
            //正弦波采樣值計(jì)算公式
            // f(x)=128+127*sin(2*3.1415*x/127) x=[0....127]
            //PWM輸出也可通過控制LED發(fā)光來直觀的看到效果,亮度持續(xù)的變化
            //可以通過選跳線帽選擇是通過LED直接查看還是通過濾波器查看實(shí)際波形
            //編譯環(huán)境 AVR Studio 4.17/AVR GCC
            //系統(tǒng)時(shí)鐘7.3728MHZ,設(shè)置熔絲位為外部高頻石英晶體振蕩,啟動(dòng)時(shí)間4.1ms
            //***********************************************************************
            //包含文件
            //***********************************************************************

            本文引用地址:http://www.biyoush.com/article/201611/317437.htm

            #include
            #include
            #define F_CPU7372800// 單片機(jī)主頻為7.3728MHz,用于延時(shí)子程序
            #include
            #include
            #include
            #include //中斷信號(hào)頭文件

            //***********************************************************************
            //定義變量區(qū)
            //***********************************************************************
            #define f_count 254 //0CR0寄存器初始值
            #define timer_clk 0x07
            #define delay_us(x) _delay_us(x) //AVR GCC延時(shí)函數(shù) x(us)
            #define delay_ms(x) _delay_ms(x) //AVR GCC延時(shí)函數(shù) x(ms)

            #define uchar unsigned char
            #define uint unsigned int
            #define ulong unsigned long


            uchar auc_SinParam[128] = {
            128,134,140,147,153,159,165,171,177,182,188,193,198,204,208,213,
            218,222,226,230,233,237,240,242,245,247,249,251,252,253,254,254,
            254,254,253,252,251,250,248,246,244,241,238,235,232,228,224,220,
            215,211,206,201,196,191,185,179,174,168,162,156,150,144,137,131,
            125,119,112,106,100,94,88,82,77,71,65,60,55,50,45,41,
            36,32,28,24,21,18,15,12,10,8,6,5,4,3,2,2,
            2,2,3,4,5,7,9,11,14,16,19,23,26,30,34,38,
            43,48,52,57,63,68,74,79,85,91,97,103,109,116,122,128}; // 128點(diǎn)正弦波樣本值

            uchar x_SW = 8,X_LUT = 0;


            //*************************************************************************
            //初始化子程序
            //*************************************************************************
            void system_init() //IO口初始化
            {

            PORTB=0xff; //PB設(shè)置為輸出
            DDRB=0xff; //上拉電阻無效
            }

            void timer0_init() //定時(shí)器初始化
            {
            TCCR0=0x68|timer_clk; //快讀PWM模式,OC0輸出,分頻
            OCR0=128; //OCR0比較匹配寄存器值
            TIFR=0x01; //清中斷標(biāo)志位
            TIMSK=0x01; //使能定時(shí)器0溢出中斷
            }


            //*************************************************************************
            //定時(shí)器0中斷服務(wù)子程序
            //*************************************************************************

            ISR(TIMER0_OVF_vect) //中斷服務(wù)程序
            {
            X_LUT += x_SW; // 新樣點(diǎn)指針
            if (X_LUT > 127) X_LUT -= 128; // 樣點(diǎn)指針調(diào)整
            OCR0 =auc_SinParam[X_LUT]; // 取樣點(diǎn)指針到比較匹配寄存器
            }

            //*************************************************************************
            //主程序
            //*************************************************************************

            int main(void)
            {
            system_init(); //系統(tǒng)初始化.PB3輸出PWM波形
            timer0_init(); //定時(shí)器0初始化,完成PWM相關(guān)配置
            SREG|=0x80; //開啟全局中斷
            while(1)
            {
            }
            }



            關(guān)鍵詞: ATmega128PWMtim

            評(píng)論


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

            關(guān)閉