Страница 2 из 2
Re: Измерение частоты T1 и пара вопросв)
Добавлено: Ср авг 28, 2013 06:58:04
foton6
Разобрался с Usart ) Все было ок, только надо было... Позже напишу как дома буду)
Теперь интересует режим захвата у Tаймера 1 . Я английский не знаю а промт такой промт...
Объясните суть как работает эта функция.
Я так понял когда приходит "нужное условие на ножку"(нарастание/падение сигнала, или любое изменение пина) значение таймера записывается в какой то регистр. После таймер продолжает тикать.
(на работе трафик урезан, потому не могу посмотреть названия регистров^^)
Re: Измерение частоты T1 и пара вопросв)
Добавлено: Ср авг 28, 2013 07:28:21
akl
Не совсем так. В момент прихода события захвата значение таймера TCNT1 аппаратно заносится в регистр захвата ICR1 и взводится флаг ICF1.
Re: Измерение частоты T1 и пара вопросв)
Добавлено: Ср авг 28, 2013 08:09:17
foton6
Перезапись этого регистра происходит только после сброса флага? или постоянно перезаписывает пока приходят импульсы?
Re: Измерение частоты T1 и пара вопросв)
Добавлено: Ср авг 28, 2013 09:16:47
akl
foton6 писал(а):...постоянно перезаписывает пока приходят импульсы
Именно так.
Re: Измерение частоты T1 и пара вопросв)
Добавлено: Ср авг 28, 2013 16:16:25
Alexeyslav
Работать может и на большей частоте, а то что написано в даташите - это гарантированное значение, если читать внимательней то максимальная частота еще зависит от напряжения питания!
Недавно, в качестве эксперимента, под жидким азотом обычную ардуину на 20Мгц разогнали до 60 с лишним мегагерц.
Re: Измерение частоты T1 и пара вопросв)
Добавлено: Ср авг 28, 2013 17:24:29
foton6
ПО usart как и обещал, вдруг будет кому полезно)
Вообщем вот так инициализирую и все ок:
Код: Выделить всё
UCSRA = 0;
UCSRB = 1<<RXEN|1<<TXEN|0<<RXCIE|0<<TXCIE;
UCSRC = 1<<URSEL|1<<UCSZ0|1<<UCSZ1;
А точнее проблема пропала при UCSRA = 0; до этого я его не трогал.
А при перезаписи Т1 обнуляется?
Тоесть в любой момент прочтения регистра ICR1, получится норм значение?
Re: Измерение частоты T1 и пара вопросв)
Добавлено: Чт авг 29, 2013 03:42:12
akl
foton6 писал(а):А при перезаписи Т1 обнуляется?
Нет конечно. Весь смысл применения модуля захвата теряется. Ведь таймер может одновременно выполнять и другие функции, допустим, генерировать ШИМ или давать отсечки времени для динамической индикации. Т.е. он не должен останавливаться и уж тем более обнуляться.
foton6 писал(а):Обороты двигателя думаю брать с генератора(выдает прямоугольники).
В Вашем случае содержимое таймера в начале измерения и содержимое таймера в конце измерения несут информацию о текущем периоде скорости вращения. Получив разницу между этими двумя значениями и отнеся её к периоду частоты тактирования таймера, получаете число оборотов в секунду. Умножив на коэффициент пропорциональности (60 для 1 импульса/оборот, 30 для 2-х импульсов/оборот и т.д.) получаете скорость вращения в привычных единицах.
foton6 писал(а):То есть в любой момент прочтения регистра ICR1, получится норм значение?
Да, при условии, что частота событий захвата меньше (для AVR не менее чем в 2,5 раза) опроса таймера.
Re: Измерение частоты T1 и пара вопросв)
Добавлено: Пт авг 30, 2013 19:58:19
foton6
Спасибо)