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

 
 
> с++ и прерывания
Sirko
сообщение Jan 23 2012, 12:16
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 245
Регистрация: 15-08-07
Пользователь №: 29 795



Есть желание написать класс USART для XMega, благо строение ядра способствует. Но вот как быть с прерываниями?
Не хочется для каждого объекта прописывать обработчики в ручную, а как реализовать шаблонно или с макросами, не представляю.

Есть идеи?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
V_G
сообщение Jan 24 2012, 07:11
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Вообще-то для UARTов в хmege есть очень эффективный механизм DMA, но ни одна из представленных сишных реализаций его не использует.
Во всяком случае, при передаче, когда длина буфера заранее известна, применять DMA очень эффективно и красиво, и не нужно никаких прерываний. При приеме посложнее. Но если протокол предусматривает передачу длины посылки, я по прерыванию RxC побайтно беру начало, пока не доберусь до длины, а потом настраиваю DMA на прием указанного числа байтов и реагирую только на прерывание окончания DMA.
Но это на ассемблере

По IO - да. Плюс к тому есть виртуальные порты, которые можно присвоить к любым портам, подключенным к внешним ногам, и обращаться к ним традиционно, через IN,OUT,CBI,SBI и т.д. А так, в общем случае до назначения виртуальных портов, внешние порты не входят в пространство IO
И это на ассемблере

Сообщение отредактировал V_G - Jan 24 2012, 07:12
Go to the top of the page
 
+Quote Post
Navovvol
сообщение Jan 26 2012, 05:29
Сообщение #3


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

Группа: Участник
Сообщений: 105
Регистрация: 9-09-11
Пользователь №: 67 080



Цитата(V_G @ Jan 24 2012, 10:11) *
Вообще-то для UARTов в хmege есть очень эффективный механизм DMA...
Но это на ассемблере

Заинтересовал про DMA и USART sm.gif
Сколько не читал про DMA так и не понял как его использовать
Покажи плиз асм код USART+ DMA. sm.gif)

Сообщение отредактировал Navovvol - Jan 26 2012, 05:31
Go to the top of the page
 
+Quote Post



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

 


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


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