文章
博客 网店

 关于"中断可不可以自己嵌套自己?"的一个例子


  下面是我做的一个串口接收中断自已嵌套自己的例子.

#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;
}

结果显示,可多(取决于堆栈)次返回发送的数据.
说明,中断是可以自己嵌套自己的.

芯艺工作室    蒙ICP备06005492号
Copyright© 2004-2023 ChipArt Studio All Rights Reserved