新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR CTC模式波形輸出實驗

        AVR CTC模式波形輸出實驗

        作者: 時間:2016-11-30 來源:網絡 收藏
        注:頻率為488HZ 既 64分頻 8us計數一次 256次即2048ns ==2.048ms 所以頻率488HZ

        CTC模式 比較匹配我設置為置位 當定時器值==OCR0 輸出口為高電平,然后定時器自動清零重新計數開始如此反復。

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

        輸出電壓為占空比值。一下是源碼:
        #include
        #include
        #define uchar unsigned char
        #define uint unsigned int
        __flash uchar seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //段碼
        0x7f,0x6f};
        __flashuchar tab[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位選碼
        int wide=0; //比較匹配設置變量

        void delay(uint k) //延時k ms子程序
        {
        uint i,j;
        for(i=0;ifor(j=0;j<1140;j++);
        }
        void show_dat(uint dat)
        {
        uchar i=0;
        do
        {
        PORTA=seg[dat%10];
        PORTC=tab[i];
        delay(1);
        PORTA=0xff;
        PORTC=0xff;
        dat=dat/10;
        i++;
        }
        while(dat);
        }
        void port_init()
        {
        PORTA=0xff;
        DDRA=0xff;
        PORTC=0xff;
        DDRC=0xff;
        PORTD=0xff;
        DDRD=0x00;
        PORTB=0xff;
        DDRB=0xff;
        }
        void time_init()
        {
        TCCR0=0x7b; //CTC模式設置 比較匹配置位
        TCNT0=0x00; //定時器初值
        OCR0=0x00; //比較匹配初值
        }
        void init()
        {
        MCUCR=0x0a;
        GICR=0xc0;
        SREG=0x80;
        }
        void main()
        {
        port_init();

        init();
        time_init();
        while(1)
        {
        OCR0=wide;
        show_dat(wide);
        }
        }
        #pragma vector = 0x04
        __interrupt void int0()
        {
        delay(100);
        wide=wide+10;
        if(wide>255)wide=0;
        }
        #pragmaadclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=17&is_app=0&jk=1b45ef2776d0b384&k=vector&k0=vector&kdi0=0&luki=4&n=10&p=baidu&q=98059059_cpr&rb=0&rs=1&seller_id=1&sid=84b3d07627ef451b&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1831118&u=http%3A%2F%2Fwww%2E51hei%2Ecom%2Fmcu%2F2146%2Ehtml&urlid=0" id="0_nwl" mpid="0" target="_blank">vector= 0x08
        __interrupt void int1()
        {
        delay(100);
        wide=wide-10;
        if(wide<0) wide=0;
        }



        關鍵詞: AVRCTC模式波形輸

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 都安| 克拉玛依市| 镇坪县| 通州区| 和龙市| 汨罗市| 佳木斯市| 鹤山市| 六盘水市| 平顶山市| 龙泉市| 呼伦贝尔市| 南江县| 托克逊县| 阆中市| 本溪市| 固阳县| 南昌市| 即墨市| 象州县| 兴义市| 平远县| 吉首市| 永丰县| 丰城市| 柳林县| 五家渠市| 永善县| 汤阴县| 肥东县| 边坝县| 灌阳县| 凤城市| 乐至县| 新民市| 图木舒克市| 张家界市| 彭阳县| 定日县| 中超| 颍上县|