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

 
 
> Параллельное использование нескольких USART, Как настроить прерывания?
wmakc
сообщение Jan 31 2011, 10:33
Сообщение #1


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

Группа: Участник
Сообщений: 111
Регистрация: 2-03-10
Пользователь №: 55 768



AT91C_BASE_US0->US_IER = AT91C_US_RXRDY; // 1
AT91C_BASE_US0->US_IER = AT91C_US_RXBUFF; // 2

1. Как я понял это прерывание срабатывает при появлении данных
2. А это при заполнении буфера

Если обмен данных идет по другому usart, то при первом случае прерывание не срабатывает, пока не закончится обмен. А при втором, прерывание вызывается всегда, даже когда нет обмена с этим usartом.

Мне нужно организовать передачу по 4 usartам.
1)По одному идет обмен с устройством. Для него должен быть минимальный приоритет.
2)По второму обмен с датчиком. При срабатывании датчика, должен происходить обмен с ним. У него максимальный приоритет.
3)По последним двум проводится ретрансляция данных.

Забыл написать контроллер Atmel At91sam9g20.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Aaron
сообщение Mar 5 2011, 10:03
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



тут вопрос даже не в том, тратит PDC ресурс МК (нет, не тратит) или нет, а в том, что 1920 бит за 100мс это 192 байта, но никак не 10!!! ищите программные ошибки, ну никак не может всё настолько сильно тормозить.
Go to the top of the page
 
+Quote Post
wmakc
сообщение Mar 10 2011, 15:39
Сообщение #3


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

Группа: Участник
Сообщений: 111
Регистрация: 2-03-10
Пользователь №: 55 768



Цитата(Aaron @ Mar 5 2011, 13:03) *
тут вопрос даже не в том, тратит PDC ресурс МК (нет, не тратит) или нет, а в том, что 1920 бит за 100мс это 192 байта, но никак не 10!!! ищите программные ошибки, ну никак не может всё настолько сильно тормозить.


Как оказалось, контроллер не виноват, задержки вносил преобразователь интерфейсов Moxa, который использовался для тестирования(Один из портов оказался подпорченным). После замены все заработало, никаких задержек)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- wmakc   Параллельное использование нескольких USART   Jan 31 2011, 10:33
- - aaarrr   Цитата(wmakc @ Jan 31 2011, 13:33) Если о...   Jan 31 2011, 10:49
|- - wmakc   Цитата(aaarrr @ Jan 31 2011, 13:49) Это, ...   Feb 1 2011, 08:06
- - Aaron   1. если у вас прямо так жёстко надо прервать обраб...   Feb 1 2011, 08:23
- - wmakc   Дело в том, что с датчиком просто идет обмен данны...   Feb 1 2011, 08:37
- - Aaron   поподробнее опишите, что ли. что и как используетс...   Feb 1 2011, 09:04
- - wmakc   Вот код main, здесь только инициализация Uartoв пр...   Feb 1 2011, 09:58
- - wmakc   Вот начал переделывать программу, чтобы использова...   Feb 2 2011, 16:31
- - Aaron   я сам PDC не использую, потому как ещё не было так...   Feb 3 2011, 11:55
- - wmakc   Разобрался в инициализации PDC. Завтра выложу, что...   Feb 3 2011, 17:42
- - wmakc   Сделал PDC для всех используемых USARTов. Немного ...   Feb 8 2011, 15:18
|- - DmitryM   Цитата(wmakc @ Feb 8 2011, 18:18) Возникл...   Feb 8 2011, 18:01
- - wmakc   Разобрался, прерывания нормально работают. Проблем...   Feb 9 2011, 17:51
- - wmakc   Продолжаю писать программу, столкнулся с такой про...   Feb 25 2011, 19:18
- - wmakc   Сделал так чтобы контроллер реагировал на прерыван...   Mar 3 2011, 15:14


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

 


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


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