最简单的AVR定时器的问题

2019-03-24 20:56发布

由于本人是初学者,如果问题太没有含精量大家别见外啊 我编译的60秒定时器不知道为什么就是不能再protues上实现。 以下是源代码和protues仿真图,希望大家帮帮忙啊 #include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uchar table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uint i; void delay(uint z) { uint a,b; for(a=z;a>0;a--) for(b=110;b>0;b--); } void init() { DDRC=0xff; PORTC=0; DDRD=0xff; PORTD=0; } void time1_init() { TCCR1A=0; TCCR1B=0x04;//设置256分频 TCNT1H=0x85; TCNT1L=0xed;//设置定时器初值 TIMSK|=BIT(2);//开中断使能 SREG|=BIT(7); } void display() { PORTD=0xfe; PORTC=table[i/10]; PORTD=0xfd; PORTC=table[i%10]; } void main() { init(); time1_init(); while(1) { display(); } } #pragma interrupt_handler time1_isr:9 void time1_isr() { TCNT1H=0x85; TCNT1L=0xed;//设置定时器初值 i++; if(i==60) i=1; } [ 本帖最后由 Learner_new 于 2012-3-22 17:35 编辑 ] 此帖出自小平头技术问答
0条回答

一周热门 更多>