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

 
 
> ATTINY24A и TIMER1 в режиме INPUT CAPTURE
Slonofil
сообщение Jul 6 2012, 08:45
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781



Товарищи из опытных, хочется уточнить у Вас некоторые детали работы Timer1 в режиме Input Capture от входа ICP.

Из документации не сумел уяснить следующие моменты:
1. При настройке таймера 1 нужно ли проводить инициализацию TCNT1 некоторым (нулевым) значением? Или для этой задачи это не принципиально?
2. Когда происходит захват, и TCNT1 загружается в ICR1, что дальше происходит со значением TCNT1? Оно обнуляется? Или счёт продолжается от захваченного значения до переполнения? И как тогда высчитывать время между событиями?
3. Поскольку стоит задача померять период импульсов и само их наличие (если импульсов нет, то на входе может быть либо постоянный 0, либо постоянная 1), то актуально ли использование простого переполнения от Timer1 для фиксации момента пропадания ипульсов (если было переполнение - значит, захвата за время счёта не произошло). Для этого ведь необходимо, чтобы после захвата происходил сброс рабочего регистра таймера (см. п. 2)...
4. Необходимо ли настраивать программно пин ICP на вход или это сделает механика таймера-счётчика? Слышал, что в атмеловских творениях такая функция имеется.

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Slonofil
сообщение Jul 6 2012, 09:21
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781



Спасибо!

Значит, если мне надо считать короткие импульсы (до 150 кГц), то учитывать переполнения не нужно, удобнее считать от нуля (в момент захвата обнулять счётный регистр). Должно вполне хватить младшего байта ICR1L, старший достаточно будет проверять на 0.

Хотел бы спросить у Вас как новичёк у опытного: подскажите, есть ли возможность добыть как-то данные регистров из ATTINY24A при помощи AVRISP II? До этого работал с PIC12/18/32 и ICD2/ICD3, про их работу в режиме отладчика знаю, а вот про ATTINY не знаю, где поглядеть. Отладкой в среде пользовался, но она не поможет мне при захвате.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 6 2012, 10:26
Сообщение #3


Гуру
******

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



Цитата(Slonofil @ Jul 6 2012, 13:21) *
Значит, если мне надо считать короткие импульсы (до 150 кГц), то учитывать переполнения не нужно, удобнее считать от нуля (в момент захвата обнулять счётный регистр). Должно вполне хватить младшего байта ICR1L, старший достаточно будет проверять на 0.

Э-э-э... Что-то мы друг друга не понимаем...
Обнуляем счетчик. Фиксируем первое значение (показание счетчика в момент первого импульса), затем то же для начала второго импульса. Из показаний счетчика при втором импульсе вычитаем первое показание и разность умножаем на период следования счетных импульсов. Это - если переполнение таймера происходит за период заведомо бОльший, чем два измеряемых периода. Важно забрать захваченное значение до прихода следующего импулься: при частоте 150кГц у Вас на это будет всего-то сотня тактов... Кроме, того: прикиньте какая точность измерения получится, а какая Вам нужна? Если частота измеряемых импульсов мало меняется за некоторый период, то можно поставить внешний предделитель и считать время прихода 4, 8, 16.... импульсов для повышения точности. При измерении такого длительного интервала, вероятно, таймер станет переполняться. В этом случае прийдется считать/учитывать и переполнения таймера...

Цитата(Slonofil @ Jul 6 2012, 13:21) *
Хотел бы спросить у Вас как новичёк у опытного: подскажите, есть ли возможность добыть как-то данные регистров из ATTINY24A при помощи AVRISP II? До этого работал с PIC12/18/32 и ICD2/ICD3, про их работу в режиме отладчика знаю, а вот про ATTINY не знаю, где поглядеть. Отладкой в среде пользовался, но она не поможет мне при захвате.

AVRISP - это программатор. Посмотреть регистры при работе МК с помощью него не удастся. Можно выводить некоторую информацию для отладки на светодиоды, подключенные к портам (в tiny их не богато), или выводить по последовательному интерфейсу на терминал, или использовать AVR JTAGICE mkII.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 03:09
Рейтинг@Mail.ru


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