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

480 Микроконтроллеры AVR от азов программирования... Флаги ошибки приемника Приемник USART использует три флага ошибки: ♦ флаг «Ошибка кадра» (FE); ♦ флаг «Переполнение данных» (DOR); ♦ флаг «Ошибка четности» (UPE). Все три флага — это отдельные биты регистра UCSRA. Особенность флагов ошибки в том, что они расположены в буфере приема вместе с принятым кадром, статус ошибки которого они отражают. Поэтому все три флага ошибки должны быть прочитаны посредством регистра UCSRA прежде, чем будет прочитан буфер приема (UDR). В момент чтения буфера приема значение всех флагов сбрасывается. Другая особенность флагов ошибки состоит в том, что они не могут быть изменены программным путем. Однако при записи нового значе ­ ния в регистр UCSRA рекомендуется разряды, соответствующие флагам ошибки, устанавливать в ноль, для совместимости с будущими модифи ­ кациями канала USART. Ни один из флагов ошибки не может вызывать прерывания. Флат «Ошибка кадра» (FE) содержит информацию о правильности приема первого стопового бита очередного прочитанного кадра, храня ­ щегося в буфере приема. Флаг FE равен нулю, если стоповый бит был правильно прочитан (был равен единице), и равен единице, если стопо ­ вый бит был неправильный (равен нулю). Этот флаг может использоваться для того, чтобы обнаружить: ♦ срыв синхронизации; ♦ обрыв связи; ♦ ошибки протокола. На логику работы флага FE не влияет бит выбора количества стоповых битов (бит USBS регистра UCSRC), так как приемник игнорирует второй стоповый бит. Флаг «Переполнение данных» (DOR) указывает на потерю данных из-за переполнения буфера в процессе приема. Переполнение данных происходит в том случае, когда буфер приема заполнен (два слова дан ­ ных), новое слово данных находится во входном сдвиговом регистре и обнаружен новый стартовый бит. Если флаг DOR установлен, это значит, что один или более кадров были потерянны. Флаг DOR сбрасывается в том случае, если полученный кадр был успешно перемещен из сдвигового регистра в буфер приема. Флаг «Ошибка четности» (UPE) указывает на то, что очередной кадр в буфере приема имел ошибку четности. Если проверка четности отклю ­ чена, флаг UPE всегда будет равен нулю.

RkJQdWJsaXNoZXIy MTExODQxMg==