Измерение частоты T1 и пара вопросв)

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Сообщения: 146
Зарегистрирован: Вс сен 16, 2012 22:00:40

Сообщение foton6 »

Разобрался с Usart ) Все было ок, только надо было... Позже напишу как дома буду)

Теперь интересует режим захвата у Tаймера 1 . Я английский не знаю а промт такой промт...

Объясните суть как работает эта функция.

Я так понял когда приходит "нужное условие на ножку"(нарастание/падение сигнала, или любое изменение пина) значение таймера записывается в какой то регистр. После таймер продолжает тикать.
(на работе трафик урезан, потому не могу посмотреть названия регистров^^)
Реклама
akl
Друг Кота
Сообщения: 4468
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Не совсем так. В момент прихода события захвата значение таймера TCNT1 аппаратно заносится в регистр захвата ICR1 и взводится флаг ICF1.
Реклама
Встал на лапы
Сообщения: 146
Зарегистрирован: Вс сен 16, 2012 22:00:40

Сообщение foton6 »

Перезапись этого регистра происходит только после сброса флага? или постоянно перезаписывает пока приходят импульсы?
akl
Друг Кота
Сообщения: 4468
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

foton6 писал(а):...постоянно перезаписывает пока приходят импульсы
Именно так.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Работать может и на большей частоте, а то что написано в даташите - это гарантированное значение, если читать внимательней то максимальная частота еще зависит от напряжения питания!

Недавно, в качестве эксперимента, под жидким азотом обычную ардуину на 20Мгц разогнали до 60 с лишним мегагерц.
Контактная информация:
Реклама
Встал на лапы
Сообщения: 146
Зарегистрирован: Вс сен 16, 2012 22:00:40

Сообщение foton6 »

ПО usart как и обещал, вдруг будет кому полезно)

Вообщем вот так инициализирую и все ок:

Код: Выделить всё

	UCSRA = 0;
	UCSRB = 1<<RXEN|1<<TXEN|0<<RXCIE|0<<TXCIE;
	UCSRC = 1<<URSEL|1<<UCSZ0|1<<UCSZ1;
А точнее проблема пропала при UCSRA = 0; до этого я его не трогал.

А при перезаписи Т1 обнуляется?

Тоесть в любой момент прочтения регистра ICR1, получится норм значение?
Реклама
akl
Друг Кота
Сообщения: 4468
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

foton6 писал(а):А при перезаписи Т1 обнуляется?
Нет конечно. Весь смысл применения модуля захвата теряется. Ведь таймер может одновременно выполнять и другие функции, допустим, генерировать ШИМ или давать отсечки времени для динамической индикации. Т.е. он не должен останавливаться и уж тем более обнуляться.
foton6 писал(а):Обороты двигателя думаю брать с генератора(выдает прямоугольники).
В Вашем случае содержимое таймера в начале измерения и содержимое таймера в конце измерения несут информацию о текущем периоде скорости вращения. Получив разницу между этими двумя значениями и отнеся её к периоду частоты тактирования таймера, получаете число оборотов в секунду. Умножив на коэффициент пропорциональности (60 для 1 импульса/оборот, 30 для 2-х импульсов/оборот и т.д.) получаете скорость вращения в привычных единицах.
foton6 писал(а):То есть в любой момент прочтения регистра ICR1, получится норм значение?
Да, при условии, что частота событий захвата меньше (для AVR не менее чем в 2,5 раза) опроса таймера.
Встал на лапы
Сообщения: 146
Зарегистрирован: Вс сен 16, 2012 22:00:40

Сообщение foton6 »

Спасибо)
Ответить

Вернуться в «AVR»