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

 
 
 
Reply to this topicStart new topic
> USART, atmega8
max_mart
сообщение Dec 18 2011, 17:00
Сообщение #1


Местный
***

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



Необходимо организовать прием и передачу данных по ЮСАРТ по прерываниям. Приниматься и передаваться будут команды. Буфер ФИФО тоже необходим. Прерывания должны все время работать, чтобы не повредить основную ф-ю устройства.
Если у кого есть пример кода пришлите, пожалуйста!!! Только на С.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Dec 18 2011, 19:36
Сообщение #2


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

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Генератор кода CvAVR генерит всё, что ты просишь.
И FiFo, и прерывания.

Сообщение отредактировал hd44780 - Dec 18 2011, 19:37


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
max_mart
сообщение Dec 18 2011, 19:49
Сообщение #3


Местный
***

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



Генерит, но по-другому. Я пределал сделал свой вариант(как указано выше в описании). Необходимо как можно минимум времени обработки всего этого(и без откл. прерываний глобально и всяких счетчиков(достаточно несколько)). Просто хочется сверить с другими вариантами. Может накосячил где-то или будит лучше!!! Чтобы не изобретать велосипед!

Codevision вариант слишком громоздкий и прерывания запрещает!!!
Go to the top of the page
 
+Quote Post
AlexFTF
сообщение Dec 19 2011, 00:34
Сообщение #4


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

Группа: Свой
Сообщений: 95
Регистрация: 11-11-10
Из: Новосибирск
Пользователь №: 60 808



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


А как он прерывания запрещает?
Go to the top of the page
 
+Quote Post
mr_smit
сообщение Dec 19 2011, 04:28
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 22-07-09
Пользователь №: 51 457



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

Код
char getchar(void)
{
...
#asm("cli")
--rx_counter;
#asm("sei")
...
}
Go to the top of the page
 
+Quote Post
Палыч
сообщение Dec 19 2011, 04:47
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(max_mart @ Dec 18 2011, 23:49) *
... и прерывания запрещает!!!

Почему это Вас пугает? Приведенная Вами конструкция - обеспечение атомарности выполнения операции --rx_counter
Go to the top of the page
 
+Quote Post
max_mart
сообщение Dec 19 2011, 05:11
Сообщение #7


Местный
***

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



Процедура обработки принятия и отправки данных должна занимать меньше времении прерывания всегда работать. Да прерывания, то можно через юсарт регистр организовать. В основном надо, чтобы меньше вр. было!!!
Народ длавайте не будем расспрашивать зачем и почему!!!! Я все выше описал, что мне надо!!!!!!!!!
Если хотите помочь, то дайте, пожалуйста, пример или ссылку укажите, где все это есть!!!!
А то времени нет уже на глупые вопросы отвечать!!!! По сто раз одно и тоже мусолим!!!!
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Dec 19 2011, 05:14
Сообщение #8


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Поищите в закромах avrlib


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
max_mart
сообщение Dec 19 2011, 05:15
Сообщение #9


Местный
***

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



avrlib - Где это???Можно поподробнее, пожалуйста!
Go to the top of the page
 
+Quote Post
LexaK
сообщение Dec 19 2011, 05:20
Сообщение #10


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

Группа: Свой
Сообщений: 118
Регистрация: 3-12-06
Из: Новороссийск
Пользователь №: 23 082



Обратимся к первоисточникам: 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
И фифо, и прерывания.

Сообщение отредактировал LexaK - Dec 19 2011, 05:21
Прикрепленные файлы
Прикрепленный файл  USART2.zip ( 1.39 килобайт ) Кол-во скачиваний: 35
 
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Dec 19 2011, 05:24
Сообщение #11


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



http://electronix.ru/forum/index.php?showtopic=51418
Сообщение №7.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
max_mart
сообщение Dec 19 2011, 05:35
Сообщение #12


Местный
***

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



О спасибо огромное ребята!!!! Особенно lexaK!!!! Точто мне и надо было!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! biggrin.gif 1111493779.gif biggrin.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 22:32
Рейтинг@Mail.ru


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