AVR 定時記數器0 普通模式的簡單應用 作者: 時間:2016-11-22 來源:網絡 加入技術交流群 掃碼加入和技術大咖面對面交流海量資料庫查詢 收藏 #include <avr/io.h>#include #include interrupt.h>#define ling 0x80 //這里是設制從最高位一個一個的點亮volatile unsigned char count,i = 0,j = 0; //設制兩個變量void Timer0_Init(void) //定時器0的初始化{ TCNT0 = 0x3d; //給計數器賦初值 TCCR0 = 0x05; //CLK/1024分頻 TIMSK = 0x01; //始能定時器0的溢出中斷 sei(); //置位總中斷}int main(void){ DDRB = 0xff; //PB口設制為輸出 PORTB = 0xff; //PB口初始化為FF Timer0_Init(); //調用定時器0的初始化 while(1); }ISR(TIMER0_OVF_vect) //定時器溢出中斷函數{ //unsigned char i; TCNT0 = 0x3d; //重裝載計數器的值a i++; //標志位加1 if(i == 20) { //PORTB = 0xff; i = 0; count++; if(count > 7) //點亮8個LED的循環 { count = 0; j =!j; } } if(j == 0) PORTB &= ~(ling >> count); else PORTB |= (1 << count);}
評論