- •1.2.2. Выбор источника синхронизации
- •1.2.3. Установка направления счета
- •1.2.4. Выбор сброса Таймера 2.
- •1.2.5. Синхронизация сигналов t2rst, t2clk, и t2Capture
- •1.2.5.1. Одновременная установка сигналов t2rst, t2clk, и t2capture
- •1.3.2. Прерывание переполнения Таймера 2
- •1.3.3. Прерывание фиксатора Таймера 2
- •Timer 2 Capture Register
- •1.3. Прерывания по таймеру
- •1.3.1. Прерывание переполнения таймера
- •Input/Output Control Register 1
- •Input/Output Status Register 1
- •1.4. Предосторожности при работе с Таймерами
- •2. Порядок выполнения работы
- •3. Содержание отчета
1.4. Предосторожности при работе с Таймерами
При использовании таймеров как датчиков времени для HSI или HSO, следующие руководящие принципы помогут Вам избежать потенциальных проблем.
Будьте осторожны при записи в регистры таймера TIMER1 и TIMER2:
Изменение значения TIMER1 после инициализизации HSI модуля может разрушить относительные ссылки между HSI событиями. Также, изменение значения соответствующего таймера ( TIMER1 или TIMER2 ), после инициализизации HSO модуля, может заставить HSO пропускать запрограммированные события или выполнять их в неправильном порядке.
Конфигурируйте Таймер 2 для функционирования в нормальном режиме ( не в быстром режиме приращения ):
Так как для полного сканирования CAM, HSO требует восьми времен состояния, Таймер 2, когда он используется как датчик времени для HSO, должен функционировать в нормальном режиме приращения (не в быстром режиме приращения ) .
Очистите бит FAST_T2_ENA(IOC2.0) для выбора нормального режима работы таймера.
Конфигурируйте Таймер 2 для счета только в одном направлении.
Таймер 2 , когда он используется как датчик времени для HSO, должен считать только в одном направлении, поскольку, если Таймер 2 колеблется вокруг отметки времени выполнения команды, блокировка входов может происходить несколько раз.
Очистите бит T2UD_ENA(IOC2.1), чтобы сконфигурировать Таймер 2 как суммирующий счетчик.
Используйте предостережение при сбросе Таймера 2.
Не сбрасывайте Tаймер 2 до того, как его значение достигнет самого наибольшего времени, запрограммированного в CAM. CAM задерживает ожидание события до соответствующего времени . Если запрограммированное значение Таймера 2 никогда не достигается, событие будет оставаться отложенным, пока устройство не сбросится или CAM не очистится.
Когда Таймер 2 сконфигурирован для сброса внешним контактом, события программы должны происходить когда Таймер 2 равен единице, а не нулю:
Когда Таймер 2 сконфигурирован, чтобы сбрасываться внешним контактом сброса ( IOC0.3 =1), программные события не должны происходить, когда Таймер 2 равен нулю. Если HSI.0 или T2RST (P2.3) сбрасывают Таймер 2, событие может не произойти. Внешние контакты сбрасывают Таймер 2 асинхронно, и Таймер 2 может увеличиться до 1 до того, как HSO может сравнить и распознать CAM запись. Программируйте события так, чтобы они происходили, когда Таймер 2 равен 1, это гарантирует,что HSO имеет достаточное время, чтобы распознать команду, записанную в CAM .
ФРАГМЕНТ ПРОГРАММЫ ИЗУЧЕНИЯ ПРОГРАММИРОВАНИЯ ТАЙМЕРОВ
;***********************************************************
;**Исследование пpoгpаммных задеpжек с использованием Timer1*
ldb wsr,#15 ; Пеpеключиться в HWindow 15
ld timer1,#0c000h ; Загpузить значение счетчика
; Timer1
ldb wsr,#0 ; Пеpеключиться в HWindow 0
jbc ios1, 5, $ ; Ожидание пеpеполнения Timer
;***********************************************************
2. Порядок выполнения работы
2.1. Изучить устройство и порядок программирования таймеров.
2.2. Создать программу по предложенному преподавателем варианту.
2.3. Произвести отладку программы в контроллере в режиме ожидания.
2.4. Произвести отладку программы в контроллере в режиме прерывания от двух источников.
2.5. Продемонстрировать результат работы программы преподавателю.
ВАРИАНТЫ ЗАДАНИЙ
Реализовать временные интервалы с использованием первого и второго таймеров применяя режим прерывания с двумя источниками от двух таймеров.
1.Реализовать на индикаторной матрице контроллера включение светодиодов по заданному преподавателем закону.
Вариант 1. Последовательное циклическое включение светодиодов "бегущий огонь". Использовать первый таймер в качестве формирователя времени свечения светодиодов индикаторной матрицы контроллера, вторым таймером задавать задержку переключения светодиодов.
Вариант 2. Форма сигнала (последовательность включения светодиодов) задается таблицей. Использовать второй таймер в качестве формирователя времени свечения светодиодов индикаторной матрицы контроллера, первым таймером задавать задержку переключения светодиодов.
Вариант 3. Сформировать свечение всей светодиодной матрицы с последовательным уменьшением яркости светодиодов, изменяя длительность свечения светодиодов при постояноой частоте следования импульсов.
2. Реализовать на динамике контроллера, который подключен к выводу порта Р2.6, включение звуковых сигналов по заданному преподавателем закону.
Вариант 4. Режим "Метронома".
Использовать первый таймер в качестве формирователя частоты тона звучания динамика контроллера, вторым таймером задавать длительность звучания. Паузу формировать первым таймером.
Вариант 5. Написать программу формирования хроматической гаммы. Использовать первый таймер в качестве формирователя частоты тона звучания динамика контроллера, вторым таймером задавать длительность звучания.
Вариант 6. Реализовать фрагмент музыкального произведения, используя таблицу нот в приложении 1.
3. Факультативно. Используя возможности таймеров реализовать на микроконтроллере световое сопровождение к музыкальному фрагменту , поставив в соответствие каждому светодиоду матрицы контроллера определенную ноту звукового ряда.
