想做个程序,把接收到的数据发送出去: 程序1: SIGNAL(SIG_USART_RECV) //串口接收中断服务程序 { kk=UDR; //读入数据到kk nop(); //稍做延时 //把接到的数据发送出去. DDRD |=(1<<(2));//RXD为输出 PORTD |=(1<<(2)); //UDR=kk; while ( !( UCSRA & (1<<UDRE)) ) //等待发送缓冲区为空 UDR=kk; nop(); //稍做延时
} 程序2: SIGNAL(SIG_USART_RECV) //串口接收中断服务程序 { kk=UDR; //读入数据到kk nop(); //稍做延时 //把接到的数据发送出去. DDRD |=(1<<(2));//RXD为输出 PORTD |=(1<<(2)); UDR=kk; while ( !( UCSRA & (1<<UDRE)) ) //等待发送缓冲区为空 //UDR=kk; nop(); //稍做延时
} 情况:程序1不能实现,程序2可实现,为什么?(我看了很多例子,他们都是用程序1的写法,还见过有用程序2这种写法的) |