Предыдущая Следующая

Таблица 10.9. Обработка прерываний UART0

UOIIR [3:0]

Приоритет

Тип прерывания

Источник прерывания

Метод сброса прерывания

0001

-

Нет

Нет

-

оно

Наивысший

Состояние линии Rx/o шибка

ОЕ, или РЕ, или FE, или BI

Чтение U0LSR

0100

Вторичное

Принятые данные доступны

Принятые данные доступны или достигнут уровень срабатывания триггера-защелки в приемном буфере FIFO (U0FCR0 = 1)

Чтение UORBRwih снижение уровня срабатывания триггера-защелки приемного буфера FIFO UARTO

1100

Вторичное

Индикация тайм-аута символа

В приемном буфере FIFO находится, как минимум, один символ, при этом в течение некоторого периода времени не производится операций ввода или удаления символов в буфере FIFO. Длительность этого периода времени зависит от того, сколько символов находится в буфере FIFO и какой установлен уровень срабатывания триггера-защелки (от 3.5 до 4.5 периодов длительности символа). Точное время определяется как: [(длина слова) х 7 - 2] х 8 + [(уровень триггера - количество символов) х 8 + 1] х RCLK

Чтение U0RBR

0010

Третичное

THRE

THRE

Чтение U0IIR (если он — источник прерывания) или запись в U0THR

Примечание. Значения 0000, ООН, 0101, 0111, 1000, 1001, 1010, 1011, 1101, 1110, 1111 зарезер-

вированы.

RLS-прерывание UARTO (U0IIR[3:1] = Oil) является прерыванием с самым высоким приоритетом и генерируется всякий раз, когда на входе Rx UARTO имеет место одно из четырех условий (состояний) ошибки: ошибка переполнения (ОЕ), ошибка четности (РЕ), ошибка кадровой синхронизации (FE) и прерывание останова (BI). Состояния ошибки приема UART0, которые устанавливают прерывание, отображаются в значениях битов U0LSR[4:1]. Прерывание сбрасывается после чтения U0LSR.

RDA-прерывание UARTO (U0IIR[3:1] = 010), как и СП-прерывание (U0IIR[3:1] = 110), имеет второй уровень приоритета. Прерывание RDA активизируется, когда приемный буфер FIFO UARTO заполняется до уровня срабатывания триггера-защелки, определенного битами U0FCR[7:6], и сбрасывается, когда приемный буфер FIFO UARTO освобождается ниже уровня срабатывания триггера-защелки. Когда прерывание RDA активно, центральный процессор может читать блок данных, размер которого определен уровнем срабатывания триггера-защелки.

СП-прерывание (U0IIR[3:1] = 110) имеет второй уровень приоритета и генерируется, когда приемный буфер FIFO UARTO содержит не менее одного символа и не пополняется и/или не освобождается в течении времени, равного от 3.5 до 4.5 периодов длительности символа. Любая активность приемного буфера FIFO UARTO (чтение или запись сдвигового регистра приема U0R.SR UART0) сбросит прерывание. Это прерывание предназначено, чтобы сохранить U0RBR после того, как символьное сообщение (последовательность символов) было получено, а установленный уровень срабатывания триггера (защелки) еще не достигнут. Например, если периферийное устройство хочет послать 105 символов, и уровень срабатывания триггера (защелки) установлен равным 10 символов, центральный процессор получил бы 10 прерываний RDA, приводящих к перемещению 100 символов и от 1 до 5 прерываний CTI (в зависимости от сервисной подпрограммы), приводящих к перемещению (сохранению) 5 символов.


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz