用winavr写了一个很简单的at90can128单片机定时器中断程序,发现无法进入中断,寄存器都是按照at90can128的数据手册设置的,不知什么原因。代码如下,请高手指点。
#include<avr/io.h>
#include<util/delay.h>
#include<string.h>
#include<avr/signal.h>
#include<stdio.h>
#include<avr/interrupt.h>
#define uchar unsigned char#define uint unsigned int
#define ZHISHIDENG PD7 //指示灯 引脚
void t1_init()
{ TCCR1B|=_BV(2);
TCNT1H=0X57;
TCNT1L=0X40;
TIMSK1|=_BV(0);
// TCCR1C=0x00;
// SREG|=_BV(7);
// sei();
}
void main()
{ void t1_init();
DDRD|=_BV(PD7);
PORTD&=~(_BV(PD7));
sei();
while(1);
}
SIGNAL( TIMER1_OVF_vect )
{ TCNT1H=0X57;
TCNT1L=0X40;
DDRD|=_BV(PD7);
PORTD|=(_BV(PD7));
} |