Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

488 Микроконтроллеры AVR от азов программирования... Регистр буфера передаваемых данных USART и регистр буфера при ­ нимаемых данных USART совместно используют один и тот же адрес в пространстве ввода-вывода, воспринимаемый как единый регистр дан ­ ных (UDR). На самом деле, когда процессор производит запись в регистр UDR, данные попадают в буфер передачи (ТХВ). При чтении из регистра UDR возвращается содержимое буфера приема (RXB). В пяти-, шести- и семибитовых режимах передачи данных старшие неиспользуемые разряды передатчиком будут игнорироваться, а прием ­ ником будут установлены в ноль. Запись в буфер передачи может производиться только в том случае, когда флаг UDRE регистра UCSRA установлен. Данные, записанные в UDR в тот момент, когда флаг UDRE не установлен, передатчиком USART будут проигнорированы. Если данные загружены в буфер передачи, а передача разрешена, то передатчик загружает данные в передающий сдвиговый регистр, если, конечно, он пуст. После этого данные начинают побитно передаваться на выход TxD. Буфер приемника состоит из двух уровней FIFO. Буфер FIFO изме ­ няет свое состояние всякий раз, когда происходит обращение к нему. Поэтому для обращения к буферу не используйте команды из разряда «чтение/модификация/запись» (SBI и CBI). Будьте внимательны также при использовании команд проверки разрядов (SBIC и SBIS), так как они также изменяют состояние FIFO. Регистр «А» статуса и управления USART — UCSRA Номер бита 7 6 5 4 3 2 1 0 | RXC | ТХС | UDRE | FE | DOR | UPE | U2X | МРСМ | UCSRA 4TeHne(R)/3anncb(W) R R/W R R R R R/W R/W Начальное значение 00 100000 Бит 7 — RXC: Флаг завершения приема USART. Этот флаг устанавли ­ вается в единицу, если в буфере приемника есть непрочитанные данные, и очищается, когда буфер приемника пуст (то есть не содержит никаких непрочитанных данных). Если приемник заблокирован, буфер прием ­ ника будет освобожден, и, следовательно, бит RXC установится в ноль. Флаг RXC может быть использован для генерации прерывания по собы ­ тию «Прием завершен» (смотри описание разряда RXCIE). Бит 6 — ТХС: Флаг завершения передачи USART. Этот флаг устанав ­ ливается в том случае, если очередной кадр в сдвиговом регистре передат ­ чика был полностью передан, а в буфере передатчика (UDR) нет никаких новых данных, предназначенных для передачи. Флаг ТХС автоматически очищается, когда начинается выполнение соответствующей процедуры

RkJQdWJsaXNoZXIy MTExODQxMg==