2016-07-03 5 views
-1

Мне сложно преодолевать концепцию захвата ввода и как написать простой код, который будет измерять PWM тахометра, например, через входной захват и таймеры в AVR ....измерять частоту и рабочий цикл с использованием захвата ввода в avr

+0

Его не «код», просто «код». Код является массовым существительным и не может сочетаться с неопределенной статьей. –

ответ

0

Ввод данных просто дает временную метку внешнему событию. Для PWM эти события имеют передний фронт и фронт падения.
После включения таймер ATMEGA начинает увеличиваться с помощью часов. Всякий раз, когда происходит событие, он копирует значение таймера в этот момент в регистр захвата ввода и генерирует прерывание. В процедуре обслуживания прерываний ваша программа должна читать этот регистр и интерпретировать значения для расчета рабочего цикла или что-то еще.
В этом ISR вы также должны перенастроить свой регистр таймера для поиска альтернативного края, поскольку PWM имеет чередующиеся края. Я даю грубую конфигурацию регистра для ATMEGA16L, вы можете найти полную информацию в спецификации.

TCCR1B - бит6 для повышения, сброс для падения. Придется переключаться в ISR

TCCR1B - бит 0,1,2 используется для установки тактового ПРЕДВАРИТЕЛЬНО SCALER

TIMSK - бит5 включить входной захват прерываний

TIMSK - Бит0 переполнения таймера разрешения прерывания необходимо для расчетов

 Смежные вопросы

  • Нет связанных вопросов^_^