Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USART
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
max_mart
Необходимо организовать прием и передачу данных по ЮСАРТ по прерываниям. Приниматься и передаваться будут команды. Буфер ФИФО тоже необходим. Прерывания должны все время работать, чтобы не повредить основную ф-ю устройства.
Если у кого есть пример кода пришлите, пожалуйста!!! Только на С.
hd44780
Генератор кода CvAVR генерит всё, что ты просишь.
И FiFo, и прерывания.
max_mart
Генерит, но по-другому. Я пределал сделал свой вариант(как указано выше в описании). Необходимо как можно минимум времени обработки всего этого(и без откл. прерываний глобально и всяких счетчиков(достаточно несколько)). Просто хочется сверить с другими вариантами. Может накосячил где-то или будит лучше!!! Чтобы не изобретать велосипед!

Codevision вариант слишком громоздкий и прерывания запрещает!!!
AlexFTF
Цитата(max_mart @ Dec 19 2011, 02:49) *
Codevision вариант слишком громоздкий и прерывания запрещает!!!


А как он прерывания запрещает?
mr_smit
Цитата(NSTU @ Dec 19 2011, 03:34) *
А как он прерывания запрещает?

Код
char getchar(void)
{
...
#asm("cli")
--rx_counter;
#asm("sei")
...
}
Палыч
Цитата(max_mart @ Dec 18 2011, 23:49) *
... и прерывания запрещает!!!

Почему это Вас пугает? Приведенная Вами конструкция - обеспечение атомарности выполнения операции --rx_counter
max_mart
Процедура обработки принятия и отправки данных должна занимать меньше времении прерывания всегда работать. Да прерывания, то можно через юсарт регистр организовать. В основном надо, чтобы меньше вр. было!!!
Народ длавайте не будем расспрашивать зачем и почему!!!! Я все выше описал, что мне надо!!!!!!!!!
Если хотите помочь, то дайте, пожалуйста, пример или ссылку укажите, где все это есть!!!!
А то времени нет уже на глупые вопросы отвечать!!!! По сто раз одно и тоже мусолим!!!!
demiurg_spb
Поищите в закромах avrlib
max_mart
avrlib - Где это???Можно поподробнее, пожалуйста!
LexaK
Обратимся к первоисточникам: AVR306: Using the AVR UART in C on tinyAVR and megaAVR devices
http://www.atmel.com/dyn/resources/prod_do...nts/doc1451.pdf
http://www.atmel.com/dyn/resources/prod_documents/avr306.zip
И фифо, и прерывания.
demiurg_spb
http://electronix.ru/forum/index.php?showtopic=51418
Сообщение №7.
max_mart
О спасибо огромное ребята!!!! Особенно lexaK!!!! Точто мне и надо было!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! biggrin.gif 1111493779.gif biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.