AVR单片机 Atmega128芯片中 接收中断如何编写?iccavr软件和cvavr软件都可以?
是这样么?
#pragma interrupt_handler Uart_Receive:31
unsigned char data,flag=0,sum=0;
unsigned char data_table[40];
/*接收结束中断函数*/
void Uart_Receive(void)
{
static unsigned char i=0; //因为是一位一位接收,故使用static
UCSR1B&=~(1<<7); //关闭接受结束中断
data=UDR1;
data_table[ i]=data;
i++;
sum++;
if(data_table[i-1]=='\n') //如果等于'\n',则表示开始接受下一行数据了,则重新计数
{
data_table[i-1]='\0';
i=0;
flag=1;
}
UCSR1B|=(1<<7); //开启接收结束中断
}
求修改及求教。。。
|