Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UART работа с прерывание
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Dan_Dima
Привет Всем.

контроллер LPC

Хочу разобраться с отправлением данных через UART посредствам прирывания.

В документации написано что прерывания с рабатывает только когда в фифо приемник поступит 2 или более символов.

У меня был написан драйвер по работе с UART с программным фифо и было написно так: проверяем счетчик фифо и U0THR если cxtnxbr 0 и регистр пуст то записываем напрямую в U0THR если же хоть одно условие не выполняеться то пишем в программный фифо, увеличиваем счетчик и разрешаем прерывания. По такой схеме все работает проблем нет.

Но меня терзают сомнения все же почему в доках написано 2 символа и как это понимать.

Очень хочеться чтобы кто-то грамотно растолковал.
DASM
А где Вы про два прочли ?
"RX Trigger
Level
00
These two bits determine how many receiver
UART0 FIFO characters must be written before an
interrupt is activated.
0
Trigger level 0 (1 character or 0x01)
"
про два что-то не вижу..
Dan_Dima
The initialization conditions implement a one character delay minus the stop bit whenever
THRE=1 and there have not been at least TWO characters in the U0THR at one time since
the last THRE = 1 event.
This delay is provided to give the CPU time to write data to
U0THR without a THRE interrupt to decode and service. A THRE interrupt is set
immediately if the UART0 THR FIFO has held TWO or MORE characters at one time and
currently, the U0THR is empty.

а RX Trigger это про прием если я не ошибаусь там все нормально.
DASM
По-моему там речь о задержке этого прерывания после стартапа MCU, чтобы не завалить ненужными еще THRE прерываниями. Могу ошибаться
Dan_Dima
Цитата(DASM @ Dec 6 2007, 01:41) *
По-моему там речь о задержке этого прерывания после стартапа MCU, чтобы не завалить ненужными еще THRE прерываниями. Могу ошибаться


Да оно так или при разрешении прерывания когда оно разрешаеться а U0THR пуст. В любом случаии написано что необходимы 2 символа.
Alex03
Цитата(Dan_Dima @ Dec 6 2007, 03:01) *
Да оно так или при разрешении прерывания когда оно разрешаеться а U0THR пуст. В любом случаии написано что необходимы 2 символа.

Читайте внимательнее, про необходимость 2-х символов не написано, написано про задержку прерывания.
Если вы запихивает в очередь подряд 2 и более байта то прерывание происходит сразу по опустошению ФИФО (но пока ещё передаётся последний байт).
Если зараз отправляете 1 байт, то прерывание происходит с задержкой в один символ без стоп бита (т.е. по фактической передаче символа).

PS Дока кривовастая, некоторые моменты по несколько раз читать надо! smile.gif
Dan_Dima
Спасиб. Теперь все понтяно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.