реклама на сайте
подробности

 
 
> UART работа с прерывание
Dan_Dima
сообщение Dec 5 2007, 19:49
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 18-01-07
Пользователь №: 24 530



Привет Всем.

контроллер LPC

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

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

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

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

Очень хочеться чтобы кто-то грамотно растолковал.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
DASM
сообщение Dec 5 2007, 20:08
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



А где Вы про два прочли ?
"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)
"
про два что-то не вижу..
Go to the top of the page
 
+Quote Post
Dan_Dima
сообщение Dec 5 2007, 21:25
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 18-01-07
Пользователь №: 24 530



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 это про прием если я не ошибаусь там все нормально.

Сообщение отредактировал Dan_Dima - Dec 5 2007, 21:27
Go to the top of the page
 
+Quote Post
DASM
сообщение Dec 5 2007, 21:41
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



По-моему там речь о задержке этого прерывания после стартапа MCU, чтобы не завалить ненужными еще THRE прерываниями. Могу ошибаться
Go to the top of the page
 
+Quote Post
Dan_Dima
сообщение Dec 5 2007, 22:01
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 18-01-07
Пользователь №: 24 530



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


Да оно так или при разрешении прерывания когда оно разрешаеться а U0THR пуст. В любом случаии написано что необходимы 2 символа.
Go to the top of the page
 
+Quote Post
Alex03
сообщение Dec 6 2007, 05:22
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



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

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

PS Дока кривовастая, некоторые моменты по несколько раз читать надо! smile.gif
Go to the top of the page
 
+Quote Post
Dan_Dima
сообщение Dec 7 2007, 09:11
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 18-01-07
Пользователь №: 24 530



Спасиб. Теперь все понтяно.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 08:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01438 секунд с 7
ELECTRONIX ©2004-2016