roboforum.ru

Технический форум по робототехнике.

помогите создать программу для avr

помогите создать программу для avr

Yankee11 » 25 мар 2015, 09:05

Для мега16 чтоб через uart можно можно было логическим состоянием пинов портов
Последний раз редактировалось Yankee11 25 мар 2015, 11:59, всего редактировалось 1 раз.

Re: помогимте создать программу для avr

avr123.nm.ru » 25 мар 2015, 10:09

попробуйте краткий курс http://www.proavr.narod.ru и задачи 5 и 13, рекомендую использовать arduino micro leonardo или arduino nano http://www.mkpochtoi.ru чтоб избежать пайки. и еще симулятор proteus

Re: помогите создать программу для avr

RootAdmin » 25 мар 2015, 14:14

Ха. Скетч кинуть под ардуино?
Там правда еще управление двигателем - но его при желании уже самостоятельно выпилите.

Re: помогите создать программу для avr

Yankee11 » 25 мар 2015, 19:46

Суть проекта заключается в присоединении мк к роутеру и управлении логическим состоянием пинов мк посредством уарт. В программировании начинающий. Если можно, объяснить просто или на примерах как можно создать подобную прошивку из кусков кода

Re: помогите создать программу для avr

RootAdmin » 26 мар 2015, 14:50

Попробую объяснить.
Итак, определяем пременные, настраиваем порты ввода-вывода, настраиваем UART


Настраиваем прерывание на прием байта по uart. В прерывании - в зависимости от счетчика-указателя байта команды (то есть - передается сначала имя команды,например код символа "W", после приема полного имени команды либо символа конца имени, пробела например) вычисляется ожидаемая длина данных.
Проверяется счетчик таймаута команды (если нужен), если не запущен и символ первый - запускаем.
Инкрементим указатель(счетчик символов) текущей команды, записываем принятый байт в позицию указателя в массив команды. Если символ = окончание данных и длина данных соответствует ожидаемой - то взводим флаг выполнения (или переписываем массив команды в массив выполнения.

в основном цикле проверяем не пуст ли массив выполнения и не взведн ли флаг (переменная) готовности команды, выполняем ее.

Команды можно определить как состоящие например из четырех символов:
1. Имя команды. W - запись (byte)
2. Номер вывода (byte)
3. Что записать (byte) байт конечно. Хотя - если выводов меньше 127 то можно использовать старший бит из 3 символа и сэкономить время
4. конец команды, символ 13 например (byte) сам использую, чтоб из терминала тестировать.
После приема и выполнения команды контроллер может что-нибудь ответить - тут все зависит от фантазии и потребностей.

Re: помогите создать программу для avr

Yankee11 » 26 мар 2015, 21:09

Да, то что нужно. Благодарю. Осталось перевести все в код

Re: помогите создать программу для avr

WebMiCo » 07 апр 2015, 15:14

Именно для таких случаев сайт запилил webmico.ru, но только для tiny2313 пока что.


Rambler\'s Top100 Mail.ru counter