不知道为什么进入不了溢出中断,中断也打开了,经试验发现,中断标志也被置1了,但是就是没执行溢出中断子程序。为什么呢?
- void timer1_init()
- {
- TCCR1A = 0x00;
- TCCR1B=_BV(ICNC1)|_BV(ICES1); //输入捕获噪音消除,上升沿触发捕获
- TCCR1B|=0X04; //256分频
- TCNT1H=0X0B;//定时1s
- TCNT1L=0XDB;
- TIMSK=_BV(TICIE1)|_BV(TOIE1); //输入捕获、溢出中断使能
- SREG|=0X80; //sei();
- }
- void main()
- {
- uchar i;
- DDRA=0XFF;PORTA=0X00;
- DDRB=0XF0;PORTB=0XF0;
- timer1_init();
- ACSR=_BV(ACIC); //比较器初始化,输入捕获使能
- while(1)
- {
- if(a!=0)
- {
- a=0;
- for(i=4;i>0;i--)
- {
- Display_Buffer[i-1]=f%10;
- f/=10;
- }
- Show_FRQ_ON_DSY();
- }
- }
- }
- ISR(TIMER1_CAPT_vect)
- {
- freq++;
- }
- ISR(TIMER1_OVF_vect)
- {
- TCNT1H=0X0B;
- TCNT1L=0XDB;
- f=freq;
- a=1;
- freq=0;
- }
|