Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
Шаг 6. Осваиваем все возможности микроконтроллера ATtiny231 3 473 /* Установка скорости передачи */ UBRRH = (unsigned char) ( baud»8) , UBRRL = (unsigned char)baud; /* Включение приемника и передатчика */ UCSRB = (1«RXEN) I (1«TXEN), /* Установка формата кадра: 8 бит данных, 2 стоповых бита */ UCSRC = ( 1«USBS) | (3«UCSZ0) ; } Вариантов построения процедуры инициализации может быть мно жество. Такие процедуры могут включать в качестве параметра формат кадра, содержать команды запрета прерываний. Большинство приложе ний используют фиксированное значение всех параметров. Для таких приложений код инициализации может быть помещен непо-средственно в теле основной программы или включен в общую процедуру инициализации для всех остальных устройств ввода-вывода. Передача данных — передатчик USART Передатчик USART включается, если установлен бит разрешения пере дачи (TXEN) регистра UCSRB. Когда передатчик включен, стандартная функция вывода TxD отключается, а включается альтернативная функ ция. Теперь это выход передатчика последовательного канала USART. Скорость передачи информации, режим работы и формат кадра должны быть установлены однажды, но до того, как произойдет первый сеанс передачи информации. Если выбран синхронный режим, то назна чение вывода ХСК также изменится, и он будет использоваться как выход тактового сигнала передачи. Посылка кадра данных длиной от 5 до 8 бит Передача данных начинается с загрузки в буфер передачи байта дан ных. Центральный процессор может загрузить буфер передачи, записы вая байт данных в регистр ввода-вывода UDR. Данные из буфера пере дачи будут загружены в сдвиговый регистр, как только он будет готов к передаче нового кадра. Сдвиговый регистр может быть загружен новыми данными, если он находится в состоянии ожидания (не занят процессом передачи) или сразу после того, как передан последний столовый бит предыдущего кадра. Когда сдвиговый регистр загружен новыми данными, он начинает последовательную передачу данных с заданной скоростью. Ниже (листинги 6.7 и 6.8) показан пример простой функции передачи USART, использующей для проверки готовности флаг «Регистр передачи пуст» (UDRE). Если выбран формат кадра, имеющий меньше чем восемь разрядов данных, старшие биты регистра UDR игнорируются.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==