Код: Выделить всё
#define F_CPU 16000000UL // Тактовая частота микроконтроллера
#define BAUD 9600UL // Скоорость приемо-передачи для консоли
#define MYUBRR (F_CPU/(BAUD*16)-1) // Согласно заданной скорости подсчитываем значение для регистра UBRR
void uart_init(void) // Объявление функции UART для скорости приемо передачи
{
UBRR0H=(MYUBRR>>8); // Старшие 8 бит
UBRR0L=MYUBRR; // Младшие 8 бит)
UCSR0B|=(1<<TXEN0)|(1<<RXEN0); // Бити разрешения приемо-передачи
UCSR0C|=(1<<UCSZ00)|(1<<UCSZ01); // Устанавливем формат 8 бит данных
}
void uart_transmit(unsigned char data) // Объявление функции трансляции (вывода на экран)
{
while (!(UCSR0A & (1<<UDRE0))); // Ожидаем когда очистится буфер передачи
UDR0 = data; // Помещаем данные в буфер, начинаем передачу
}
unsigned char uart_receive(void)
{
while(!(UCSR0A & (1<<RXC0))); // Ожидаем пока данные будут получены
return UDR0; // Возврат 8-bit данные
}
void USART_Flush(void){
unsigned char dummy;
while (UCSR0A & (1<<RXC0)) dummy = UDR0;
}Что только не пробовал но никак не могу заставить UNO автоматически чтоб выходил из ждущего режима при получении данных для выполнения в основном цикле по выводу на консоль, данные будут выводиться на консоль Putty, как можно эту задачу организовать?


