Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
367
Добавлен:
21.05.2015
Размер:
7.55 Mб
Скачать
      1. Status - регистр статуса usart

Бит

7

6

5

4

3

2

1

0

 

+0x01

RXCIF

TXCIF

DREIF

FERR

BUFOVF

PERR

-

RXB8

STATUS

Чтение/запись

Чт.

Чт/Зап

Чт.

Чт.

Чт.

Чт.

Чт.

Чт/Зап

Нач значение

0

0

0

0

0

0

0

0

  • Бит 7 - RXCIF: флаг прерывания по завершению приема

Данный флаг становится равным единице, когда в приемном буфере имеются несчитанные данные, и нулю, если приемный буфер пуст (т.е. не содержит каких-либо несчитанных данных). После отключения приемника, приемный буфер опустошается, а флаг RXCIF становится равным нулю.

При управлении приемом данных по прерываниям, сброс флага RXCIF происходит при выполнении чтения принятых данных из регистра DATA в процедуре обработки прерывания по завершению приема. Если этого не сделать, сразу после выхода из текущего прерывания будет инициировано новое прерывание. Альтернативно, данный флаг можно сбросить записью в него единицы.

  • Бит 6 - TXCIF: флаг прерывания по завершению передачи

Данный флаг становится равным единице по завершению сдвига данных сдвиговым регистром передатчика при условии, что в буфере передатчика (DATA) нет новых данных для передачи. Флаг TXCIF автоматически сбрасывается при переходе на вектор прерывания по завершению передачи. Альтернативно, флаг можно сбросить записью в него единицы.

  • Бит 5 - DREIF: флаг прерывания по опустошению буфера данных

Флаг DREIF сигнализирует о готовности буфера передатчика (DATA) к записи новых данных. Флаг равен единице, когда буфер передачи пуст, и нулю, когда в буфере есть подлежащие передаче данные и они еще не были перемещены в сдвиговый регистр. Данный флаг становится равным единице после сброса МК, чтобы сигнализировать о готовности передатчика. Выполняя запись в регистр STATUS, всегда записывайте нуль в данный бит.

Флаг DREIF сбрасывается при записи в регистр DATA. При управлении передачей данных по прерываниям, в процедуре обработки прерывания по опустошению буфера данных необходимо, либо записать новые данные в регистр DATA для сброса флага DREIF, либо отключить прерывание по опустошению буфера. Если этого не сделать, сразу после выхода из текущего прерывания будет инициировано новое прерывание.

  • Бит 4 - FERR: флаг ошибки в посылке

Флаг FERR указывает на состояние первого стоп-бита той посылки, которая в данный момент может быть считана из приемного буфера. Флаг равен единице, если первый стоп-бит принят с нулевым (ошибочным) значением, и равен нулю, если принятый первый стоп-бит равен единице. Флаг остается действительным до момента чтения данных из приемного буфера (DATA). Флаг FERR никак не зависит от настройки бита SBMODE в регистре CTRLC, т.к. приемник игнорирует все стоп-биты, кроме первого. Выполняя запись в регистр STATUS, всегда записывайте нуль в данный бит.

В ведущем режиме SPI данный флаг не используется.

  • Бит 3 - BUFOVF: флаг переполнения буфера

Установка флага BUFOVF сигнализирует о потери данных вследствие заполнения буфера приемника. Установка данного флага происходит при обнаружении условия переполнения буфера. Такое условие возникает, когда буфер приемника заполнен (двумя символами данных), в сдвиговом регистре приемника ожидает чтения новый символ данных и обнаруживается новый старт-бит. Флаг остается действительным до выполнения чтения буфера приемника (DATA). При выполнении записи в регистр STATUS всегда записывайте нуль в данный бит.

В ведущем режиме SPI данный флаг не используется.

  • Бит 2 - PERR: ошибка паритета

Данный флаг принимает единичное значение, если разрешена проверка паритета и при приеме посылки, которая в данный момент может быть считана из приемного буфера, обнаружена ошибка паритета. Если проверка паритета отключена, флаг PERR будет всегда считываться с нулевым значением. Данный бит остается действительным до выполнения чтения буфера приемника (DATA). Выполняя запись в регистр STATUS, всегда записывайте нуль в данный бит. Более детально о вычислении паритета см. в 21.4.1 "Вычисление бита паритета".

В режиме ведущего SPI данный флаг не используется.

  • Бит 1 - Res: резервный бит

Данный бит является резервным и всегда считывается с нулевым значением. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нуль в резервный бит.

  • Бит 0 - RXB8: Принятый бит 8

В бите RXB8 хранится значение девятого принятого бита данных при работе с 9-битными данными. Чтение данного бита необходимо выполнить перед чтением младших бит данных из регистра DATA.

В режиме ведущего SPI данный бит не используется.

Соседние файлы в папке Архитектура ЭВМ