roboforum.ru

Технический форум по робототехнике.
Текущее время: 05 май 2025, 22:10

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Помогите с прогой на AVR
СообщениеДобавлено: 15 янв 2014, 08:36 
Не в сети

Зарегистрирован: 14 окт 2005, 22:31
Сообщения: 91
Здравствуйте! Проблема в том что не умею программировать. Есть РУ, приемник выдает ШИМ с длительностью от 1мс до 2мс. Нужно посчитать длительность импульса и в зависимости от этой величины включить определенную ножку.

Алгоритм: на ножке INT0 появляется сигнал, прерывание -> в обработчике обнуляем таймер, начинаем считать, прерывание по спаду напряжения на INT0 -> в обработчике закидываем в память число тактов которые насчитал счетчик. Далее стандартные условия.

Как это реализовать в код и правильный ли алгоритм?
Можно ли прерывания вкладывать друг в друга?
Как и когда остановить счетчик, вообще как настроить счетчик?
Как установить прерывание по спаду импульса?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с прогой на AVR
СообщениеДобавлено: 15 янв 2014, 10:41 
Не в сети

Зарегистрирован: 16 май 2013, 09:26
Сообщения: 174
Откуда: Moscow
прог. языки: декларативные
Если это вся задача (формально это выходит многоканальный rc switch), то можно обойтись без прерываний вообще:
Если импульс появился (а перед этим его не было - запоминаем текущее время/такты счетчика), если импульс пропал (а перед этим был) - вычитаем из текущего времени ранее запомненное.
Готово.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с прогой на AVR
СообщениеДобавлено: 15 янв 2014, 13:15 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
radonv писал(а):
Как это реализовать в код
лучше использовать специальную ногу захвата события ICP ер
Скрин начала настройки захвата прилагаю, вначале захват фронта импульса, после захвата фронта (начался импульс) в прерывании обнулите таймер 1 и запустите счет таймера 1 и настройте захват ICP "по спаду" falling ege. Когда произойдет захват спада (конец импульса) то в прерывании остановите таймер 1. Теперь счетные регистры таймера 1 содержат длину импульса в условных единицах.

как настроить прерывания в AVR http://www.proavr.narod.ru/03.htm как настроить таймер в AVR http://www.proavr.narod.ru/z6.htm

Настройки удобно делать мастером настроек в компиляторах CVAVR или ICC (https://www.imagecraft.com/devtools_AVR.html), отлаживать в PROTEUS 7.10

И в гугле поискать готовые проекты и подправить чуток. И тут на форуме есть наверняка.


Вложения:
Комментарий к файлу: Настройки AVR удобно делать мастером настроек в компиляторах CVAVR или ICC www.imagecraft.com
input capture atmega8.jpg
input capture atmega8.jpg [ 147.54 КиБ | Просмотров: 2347 ]

_________________
Читайте !


Последний раз редактировалось avr123.nm.ru 15 янв 2014, 14:12, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с прогой на AVR
СообщениеДобавлено: 15 янв 2014, 14:10 
Не в сети

Зарегистрирован: 14 окт 2005, 22:31
Сообщения: 91
Сигналы повторяются с частотой 50Гц. Стандартное управление сервоприводом.
http://www.rc-auto.ru/articles_elekton/id/432/

В случае ICP это даст только один канал. Нужно минимум 2 канала.

Как быть с алгоритмом?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с прогой на AVR
СообщениеДобавлено: 15 янв 2014, 14:13 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
с алгоритмом не морочьтесь.

второй канал на прерывание INTx либо использовать мега168 мега328 88 48 и другие у которых почти на всех ногах прерывания.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO