Белов, А.В. Микроконтроллеры 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) нет никаких новых данных, предназначенных для передачи. Флаг ТХС автоматически очищается, когда начинается выполнение соответствующей процедуры
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==