- Код: Выделить всё
UDR0=0; // передать 0 в USART0 если передача разрешена - avr123.nm.ru
По ходу процесса необходимо что бы пришедший в USART0 символ (команда) выполнил свое действие и канул в небытие, не мешая выполнению дальнейшего кода.
Попробовал следующее:
- Код: Выделить всё
char rx_data=0; //инициализация переменной
//... в самом теле цикла программы...
rx_data=UDR0; //присвоение переменной пришедшего символа (если он пришел)
UDR0=0; //стирание регистра приема
//... в следующем цикле если нет символа в регистре приема, то в переменной 0.
rx_data=UDR0;
//Далее цикл крутится в ожидании команды.
При симуляции в VMLab выходит следующее сообщение:
- Код: Выделить всё
[PC = $04FE, Time = 1.85 ms, {PER}]: UART write overrun: UDR not yet transmitted (status bit UDRE = 0)
Что это?
UDR0=0; --- запрещенная комманда???