|
atmega16,三个定时器同时工作,有问题!
//////一旦加入定时器1,数码管就不正常,屏蔽定时器1后,就正常,忘高手帮忙看下,
////定时器0负责延时一定的时间,定时器0负责延时一定的时候,并且延时时间变化(key变化),
////定时器2负责led显示。
void init_devices(void)
{
CLI();
MCUCR=0x02; //int0中断下降沿使能!
GICR=0xc0;
//timer0_init(); ///////////timer0_ovf初始化
//TIMSK=0X41; /////timer0_ovf and timer2_ovf
TIMSK=0X45; /////timer0_ovf and timer2_ovf and timer1_ovf
TCCR0=0X00;
TCNT0=0X64; ////溢出设置10ms,16M分频1024
TCCR0=0X05;
TCCR1B=0X00;
TCNT1H=0XC2;
TCNT1L=0XF7; /////设置初始值C2F7
OCR1AH=0X00;
OCR1AL=0X00;
OCR1BH=0X00;
OCR1BL=0X00;
TCCR1A=0X00;
TCCR1B=0X05; ////timer1_ovf溢出设置1s,16M分频1024
//TIMSK=0x40;
TCNT2=0x00;
TCCR2=0x05;
SEI();
}
#pragma interrupt_handler timer0_ovf:10
//tiemer0_ovf溢出中断
void timer0_ovf(void)
{
TCNT0=0X64;
//interrupt_count=100*abon; /////
interrupt_count--;
if(interrupt_count<2)
{
interrupt_count=0; ///interrupt_count置0
TCCR0=0X00; ////定时器0停止
}
}
#pragma interrupt_handler timer1_ovf:9
//tiemer1_ovf溢出中断
void timer1_ovf(void)
{
TCNT1H=0XC2;
TCNT1L=0XF7;
//interrupt_count=100*abon; /////
key--;
if(key==0) ////////当key=0时,定时器1停止
{on=0;
TCCR1B=0X00; ////定时器1停止
}
}
#pragma interrupt_handler timer2_ovf:5
//tiemer2_ovf溢出中断
void timer2_ovf()
{
int sreg_temp;
sreg_temp=SREG;
display();//显示led
SREG=sreg_temp;
}
main()
{first=0;
for(;;)
{
...........
if((1.2*ie<large<4*ie)&&(!first)) /////见电压的最大值对应的时间给key,只执行一次。
{
if(large<1.31*ie)
{key=10;//延时10秒
first=1;
}
else if(large<1.38*ie)
{key=10;//延时10秒
first=1;
}
else if(large<1.44*ie)
{key=10;//延时10秒
first=1;
}
else if(large<1.50*ie)
{key=10;//延时10秒
first=1;
}
else if(large<2*ie)
{key=5;//延时5秒
first=1;
}
else if(large<3*ie)
{key=5;//延时5秒
first=1;
}
else
{key=5;//延时5秒
first=1;
}
TCCR1B=0X00;
TCNT1H=0XC2;
TCNT1L=0XF7; /////设置timer1_ovf初始值C2F7
OCR1AH=0X00;
OCR1AL=0X00;
OCR1BH=0X00;
OCR1BL=0X00;
TCCR1A=0X00;
TCCR1B=0X05; //////timer1_ovf 启动开始工作
}
if(on==0)
{
gengxin();
pai();
if(1.2*ie<large<4*ie)
sd=0b01000000; signal=0x7f;temp=111;
baojing(); //PC6亮,故障显示8111
}
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|