下面是我做的一个串口接收中断自已嵌套自己的例子.
#include
#include
#include
//初始化
void uart_init(void)
{
UBRRH=0;
UBRRL=47;//9600 7.3728MHz
UCSRB=_BV(RXEN)|_BV(TXEN)|_BV(RXCIE);
}
//串行口写一字节
void uart_putc(uint8_t c)
{
loop_until_bit_is_set(UCSRA,UDRE);
UDR=c;
}
//串口接收中断
//void USART_RXC_vect(void) __attribute__((interrupt,__INTR_ATTRS));
//void USART_RXC_vect(void) //ISR(USART_RXC_vect)
ISR(USART_RXC_vect)
{
uint8_t g=UDR;
uart_putc(g);
sei();
while(1);
}
int main(void)
{
uart_init();
sei();
while(1);
return 0;
}
结果显示,可多(取决于堆栈)次返回发送的数据.
说明,中断是可以自己嵌套自己的.
|
|