36
2.2. Работа таймера общего назначения с устройством QEP
Выбранный таймер общего назначения всегда начинает считать с те-
кущей величины, находящейся в счетчике. Желаемая величина может быть
загружена в выбранный таймер общего назначения до разрешения работы
QEP. Важно заметить, что режим счета Directional-Up/Down выбранного
таймера общего назначения при работе с устройством
QEP отличается от
обычного режима Directional-Up/Down. Таймер, выбранный для
QEP, считая
«вверх», не останавливается при достижении значения периода, и меняет на-
правление счета только при изменении чередования импульсов. Если началь-
ная величина таймера общего назначения больше или равна величине в реги-
стре периода, то таймер будет считать «вверх» до FFFFh (или до FFFFFFFFh,
если используется 32-разрядный таймер), а затем обнулится. Когда таймер
считает в обратном направлении («вниз»), то он перейдет к FFFFh (или до
FFFFFFFFh, если используется 32-разрядный таймер), если определено на-
правление счета «вниз».
3. Задание для выполнения в лаборатории
3.1. Напишите программу, которая при вращении двигателя вручную полу-
чает сигнал с ИДП, обрабатывает его модулем QEP и осциллографирует этот
сигнал.
Для этого запустите таймер общего назначения так, чтобы он вызывал
прерывание через равные промежутки времени. В этом прерывании будет
работать осциллографирование, с помощью которого будет наблюдаться со-
стояние счетчика таймера, работающего в квадратурном режиме.
3.2. Дополните предыдущую программу подключением готового модуля
измерения скорости.
Для подключения модуля скорости требуется перевести таймер 1 в ре-
жим счета циклический вверх/вниз с периодом счета 1000 (это необходимо,
так как модуль использует этот таймер для вычисления времени между паке-
тами импульсов в расчете, что частота ШИМ 10 кГц). В процедуру обслужи-
вания прерывания по заему первого таймера следует вставить вызов макроса
SPEED_IN_PWM_INT. Следует отметить, что, так как модуль разрабаты-
вался для TMS320F241 и не рассчитан для работы с программой «Монитор»
и программой
_logger для MCK240, то результат расчета скорости может
быть не всегда достоверный. Выходной переменной измерителя скорости
служит
omega_h, omega_l, где хранится величина скорости в относительных
единицах. Следует помнить, что модуль настроен для работы с ИДП 10000
импульсов на оборот (2500 меток), когда в лаборатории стоят датчики 2000
импульсов (500 меток), при 3-х парах полюсов двигателя (в лаборатории дви-
гатели с одной парой полюсов).
Ссылки на все необходимые переменные и адреса содержатся в файле
speed.h. Прерывание по сравнению таймера, работающего в квадратурном