Полная версия этой страницы:
USART
max_mart
Dec 18 2011, 17:00
Необходимо организовать прием и передачу данных по ЮСАРТ по прерываниям. Приниматься и передаваться будут команды. Буфер ФИФО тоже необходим. Прерывания должны все время работать, чтобы не повредить основную ф-ю устройства.
Если у кого есть пример кода пришлите, пожалуйста!!! Только на С.
hd44780
Dec 18 2011, 19:36
Генератор кода CvAVR генерит всё, что ты просишь.
И FiFo, и прерывания.
max_mart
Dec 18 2011, 19:49
Генерит, но по-другому. Я пределал сделал свой вариант(как указано выше в описании). Необходимо как можно минимум времени обработки всего этого(и без откл. прерываний глобально и всяких счетчиков(достаточно несколько)). Просто хочется сверить с другими вариантами. Может накосячил где-то или будит лучше!!! Чтобы не изобретать велосипед!
Codevision вариант слишком громоздкий и прерывания запрещает!!!
AlexFTF
Dec 19 2011, 00:34
Цитата(max_mart @ Dec 19 2011, 02:49)

Codevision вариант слишком громоздкий и прерывания запрещает!!!
А как он прерывания запрещает?
mr_smit
Dec 19 2011, 04:28
Цитата(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
Dec 19 2011, 05:11
Процедура обработки принятия и отправки данных должна занимать меньше времении прерывания всегда работать. Да прерывания, то можно через юсарт регистр организовать. В основном надо, чтобы меньше вр. было!!!
Народ длавайте не будем расспрашивать зачем и почему!!!! Я все выше описал, что мне надо!!!!!!!!!
Если хотите помочь, то дайте, пожалуйста, пример или ссылку укажите, где все это есть!!!!
А то времени нет уже на глупые вопросы отвечать!!!! По сто раз одно и тоже мусолим!!!!
demiurg_spb
Dec 19 2011, 05:14
Поищите в закромах avrlib
max_mart
Dec 19 2011, 05:15
avrlib - Где это???Можно поподробнее, пожалуйста!
demiurg_spb
Dec 19 2011, 05:24
max_mart
Dec 19 2011, 05:35
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.