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

 
 
 
Reply to this topicStart new topic
> LPC2468, UART0 - не получается с RX Trigger Level, прерывание появляется сразу же после первого принятого байта
Student Pupkin
сообщение Dec 6 2009, 20:37
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760



Вот так инициализирую UART0:
CODE

// UART0 Init
PINSEL0 = BIT6 | BIT4; // pinsel TX0, RX0
U0FCR = 0x47; // Reset FIFO's and enable. Set trigger level 4 character
U0LCR = 0x83; // 8 data bit, 1 stop bit, no parity. Set DLAB
U0DLL = 0x13; // baude rate 9600
U0LCR_bit.DLAB = 0; // Clear DLAB
U0IER |= 0x01; // Enable Rx interrupt


Так обрабатывается прерывание от приемника (в обработчике FIQ):
CODE

char ch;
// Send "/n+echo-"
U0THR = LINE_FEED;
U0THR = CARRIAGE_RET;
U0THR = 'e';
U0THR = 'c';
U0THR = 'h';
U0THR = 'o';
U0THR = '-';
// send received character's
while(U0LSR_bit.DR)
{
ch = U0RBR;
U0THR = ch;
}
// new line
U0THR = LINE_FEED;
U0THR = CARRIAGE_RET;

Ожидал, что когда введу в HyperTerminal-е "1234", то следом обратно придет "echo-1234". Однако прерывание срабатывает уже при первом вводимом символе: "1" -> "echo-1".
Не подскажете, что я неправильно делаю?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 6 2009, 21:05
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Читать документацию. Слова RX Timeout

P.S.
Ну и "исходник" sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 6 2009, 21:08
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Student Pupkin @ Dec 6 2009, 23:37) *
Вот так инициализирую UART0:
Код
U0IER |= 0x01;                // Enable Rx interrupt

Не подскажете, что я неправильно делаю?


Цитата
RBR Interrupt Enable

enables the Receive Data Available interrupt for UARTn.
It also controls the Character Receive Time-out interrupt.


UPD: А, уже ответили. Исходник действительно страшноват. Надеюсь, что только для эксперимента.
Go to the top of the page
 
+Quote Post
Student Pupkin
сообщение Dec 6 2009, 21:39
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760



Извините, а что это такое - Character Receive Time-out? Надо про какой-то там стандартный '550 читать, на который в мануале ссылаются?
Насчет исходника - скажите что там страшного, потому что в целом он да, для эксперимента, но на всякий случай.
Спасибо. smile.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 7 2009, 08:44
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Student Pupkin @ Dec 7 2009, 00:39) *
Извините, а что это такое - Character Receive Time-out? Надо про какой-то там стандартный '550 читать, на который в мануале ссылаются?

Нет, читать надо сам user manual. Только честно, а не по диагонали.
Go to the top of the page
 
+Quote Post
Student Pupkin
сообщение Dec 7 2009, 19:25
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760



Цитата(aaarrr @ Dec 7 2009, 11:44) *
Нет, читать надо сам user manual. Только честно, а не по диагонали.

Нашел smile.gif . Спасибо.
Go to the top of the page
 
+Quote Post
alt3857
сообщение Oct 6 2010, 11:54
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 94
Регистрация: 21-04-10
Пользователь №: 56 794



Подскажите еще по теме. Если у меня триггер стоит не на 1 байт, то как прочитать остальные? Происходит прерывание, я читаю регистр RBR, но это один байт, а как считать остальные и узнать, что они еще не прочитаны?
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Oct 6 2010, 16:14
Сообщение #8


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Читать в цикле пока не установится флаг reciver empty (как точно называется у этого проца не знаю).
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:38
Рейтинг@Mail.ru


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