Регистр U0IER используется, чтобы разрешать прерывания от четырех источников UART0.
Битовая структура регистра U0IER приведена в Табл. 10.7.
Таблица 10.7. Регистр разрешения прерываний UARTO (U0IER — 0хЕ000С004, когда DLAB = 0)
U0IER |
Функция |
Описание |
Значение после сброса |
0 |
Разрешение прерывания RBR |
0: Запретить прерывание RDA. 1: Разрешить прерыванию RDA. Бит U0IER[0] разрешает прерывание при доступности принятых данных RDA (Receive Data Available) для UARTO. Он также управляет прерыванием от тайм-аута при приеме символа CRT (Character Receive Time-out) |
0 |
1 |
Разрешение прерывания THRE |
0: Запретить прерывание THRE. 1: Разрешить прерыванию THRE. Бит U0IER[ 1 ] разрешает прерывание THRE для UART0. Текущее состояние этого прерывания отображается в значении бита U0LSR[5] |
0 |
2 |
Разрешение прерывания по состоянию линии Rx |
0: Запретить прерывания по состоянию линии Rx. 1: разрешить прерывания по состоянию линии Rx. Бит U0IER[2] разрешает прерывания по состоянию линии Rx UARTO. Текущее состояние этих прерываний отображается в значении битов U0LSR [4:1] |
0 |
7:3 |
Зарезервированы |
Пользовательское программное обеспечение не должно производить запись в зарезервированные биты. Чтение зарезервированного бита возвращает неопределенное значение |
NA |
Регистр идентификации прерывания UARTO (UOIIR — ОхЕОООСООа, доступен только для чтения)
Регистр U0IIR содержит код текущего состояния, который отображает приоритет и источник отложенного прерывания. Во время осуществления доступа к регистру U0IIR его содержимое не меняется. Если прерывание происходит во время доступа к U0IIR, то состояние этого прерывания будет отображено при следующем доступе к U0IIR. Прерывания обрабатываются так, как это описано в Табл. 10.8. Считывая значения битов U0IIR[3:0], подпрограмма обработки прерывания может определить причину прерывания и способ сброса активного прерывания. Аппаратный сброс прерывания производится, только если оно идентифицируется как прерывание типа THRE.
Таблица 10.8. Регистр идентификации прерываний UARTO (UOIIR — 0хЕ000С008, доступен только для чтения)
U0IIR |
Функция |
Описание |
Значение после сброса |
0 |
Отложенное прерывание |
0: Как минимум, одно прерывание является отложенным. 1: Нет отложенных прерываний. Обратите внимание, что бит U0IIR[0] имеет НИЗКИЙ активный уровень. Отложенное прерывание может быть идентифицировано путем анализа битов U0IER[3:1] |
1 |
3:1 |
Идентификация прерывания |
011: Состояние линии приема (RLS). 010: Доступны принятые данные (RDA). 110: Тайм-аут индикации принятого символа (CTI). 001: Прерывание THRE. Бит U0IER[3J идентифицирует прерывание от приемного буфера FIFO UARTO. Все другие комбинации битов U0IER[3:1], кроме вышеуказанных, являются зарезервированными (000, 100,101,111) |
0 |
5:4 |
Зарезервированы |
Пользовательское программное обеспечение не должно производить запись в зарезервированные биты. Чтение зарезервированного бита возвращает неопределенное значение |
NA |
7:6 |
Разрешение FIFO |
Эти биты эквивалентны биту U0FCR[0] |
0 |
Обработка прерываний иллюстрируется в Табл. 10.9.
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |