roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 июн 2025, 03:52

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Measure duration ATmega48
СообщениеДобавлено: 10 июл 2014, 14:08 
Не в сети

Зарегистрирован: 10 июл 2014, 08:14
Сообщения: 2
День добрый форумчане! Хотел спросить, знает ли кто, как посчитать длительность импульсов с оптопары? Если сигнал подсоединён к ногам PB3, PB4. Т.е. вариант с ICP сразу отпадает, остаётся вариант с таймером или PCINT, но тут проблемка, частота проца 3.6864 МГц, частота прерывания таймера 1000,1 ГЦ в лучшем случае с предделителем 1. Просто время отсчёта нужно в секундах. А проблемка в том что я пробовал считать по PCINT и таймеру одновременно, но время получалосьь всегда в реале меньше чем секунда ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Measure duration ATmega48
СообщениеДобавлено: 10 июл 2014, 17:23 
Не в сети

Зарегистрирован: 07 авг 2010, 21:29
Сообщения: 1725
Откуда: КМВ
прог. языки: C
ФИО: Андрей
А кто мешает в обработчике переполнения таймера инкрементировать счетчик переполнений? Отдельную переменную.
А когда нужен результат - плюсуем произведения счетчика переполнений на время таймера и значение таймера по прерыванию.

_________________
Дым, идущий из всех устройств в помещении предвещает появление электрика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Measure duration ATmega48
СообщениеДобавлено: 10 июл 2014, 20:45 
Не в сети

Зарегистрирован: 10 июл 2014, 08:14
Сообщения: 2
Цитата:
А когда нужен результат - плюсуем произведения счетчика переполнений на время таймера и значение таймера по прерыванию.

Time = OverFlowCounter * 0.001(для тысячи прерываний в секунду)*61849(для тысячи прерываний в секунду, предделителя 1, и проца 3.6864МГц)

Хорошо, а как узнать время окончания сигнала? с началом более менее понятно, но вот с окончанием беда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Measure duration ATmega48
СообщениеДобавлено: 18 июл 2014, 04:09 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Не так: OverFlowCounter * 0.001(для тысячи прерываний в секунду)*61849
А вот так: OverFlowCounter * 61849 / 1000 (для тысячи прерываний в секунду)

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


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

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


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

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


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

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