Алгоритм - Учебный центр
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Функции многофункциональных таймеров.

Функции многофункциональных таймеров.

Функции многофункциональных таймеров служат дополнением к функциям таймера RTCC и сторожевого таймера, имеющихся во всех типах микроконтроллеров. Например, микроконтроллеры SX48/52BD имеют два многофункциональных таймера, которые имеют названия Т1 и Т2. Эти таймеры позволяют высвободить ресурсы центрального процессора для нужд приложения. Особенно это касается приложений реального времени, таких, как генерация сигнала с ШИМ, управление двигателями, управление тиристорными преобразователями, генерация синусоидальных сигналов и, наконец, сбор данных.

Каждый таймер может работать в четырех различных режимах. В первом режиме таймер работает в качестве генератора ШИМ-сигнала (ШИМ — широтно-импульсная модуляция). Во втором он используется в качестве программного счетчика. В третьем режиме таймер используется для подсчета внешних событий. И наконец, четвертый режим позволяет запоминать состояние счетчика по внешнему сигналу («захват») и сравнивать его с заданным значением.

Каждый таймер построен на основе 16-разрядных регистров. Кроме того, каждому из них соответствуют 4 вывода микроконтроллера: один вывод — вход тактового сигнала, 2 вывода — входы захвата и еще один вывод — выход таймера. Выводы, которые используются многофункциональными таймерами, имеют также и другие функции: выводы таймера Т1 являются выводами порта В, а выводы таймера Т2 — выводами порта С.

Режим ШИМ.

Широтно-импульсная модуляция (рис. 1) заключается в генерировании сигнала с программируемыми частотой и коэффициентом заполнения. Для использования этого режима необходимо загрузить в регистры сравнения R1 и R2 значения, равные количеству машинных циклов, в течение которых сигнал на выходе таймера равен «0» и «1» соответственно. Таким образом, содержимое регистра R1 определяет длительность сигнала НИЗКОГО, а содержимое регистра R2 — длительность сигнала ВЫСОКОГО уровня на выходе таймера.

Рис. 1. Формирование ШИМ-сигнала.

Сначала счетчик инициализируется значением 0000h. Затем содержимое счетчика инкрементируется до тех пор, пока не станет равным содержимому регистра R1. В этот момент генерируется прерывание (если оно разрешено), изменяется уровень на выходе таймера, а в счетчик вновь записывается значение 0000h. Во втором цикле содержимое счетчика инкрементируется до тех пор, пока не станет равным содержимому регистра R2. В этот момент генерируется прерывание (если оно разрешено), изменяется уровень на выходе таймера, а в счетчик вновь записывается значение 0000h. Описанный процесс постоянно повторяется с поочередным использованием регистров R1 и R2. Значения, записанные в регистрах R1 и R2, определяют коэффициент заполнения и период, а следовательно, и частоту выходного сигнала. Если в регистрах R1 и R2 записано одно и то же число, на выходном контакте таймера будет присутствовать сигнал меандра, имеющий коэффициент заполнения, равный 50%. Если в момент записи в регистр R1 значение таймера больше, чем записываемое, а на выходе таймера НИЗКИЙ уровень (т.е. таймер считает до совпадения с R1), то таймер досчитает до FFFFh и затем до нового значения R1, сохраняя на выходе НИЗКИЙ уровень. Аналогичная ситуация будет и при обновлении R2, только на выходе таймера сохранится ВЫСОКИЙ уровень. 

Управление нагрузкой широтно-импульсным методом.

Простое устройство на базе популярной микросхемы КР1006ВИ1, представленное на рис. 2, позволит снизить потребление электрической энергии и тепловой нагрев лампы в условиях изменяющейся освещенности (или другого параметра при использовании правильно подобранного соответствующего датчика). Когда освещенность внутри помещения недостаточна (регулировка осуществляется изменением номинала R2), импульсы с выхода микросхемы через ключ на транзисторе VT1 и тиристоре VS1 управляют мощностью накала лампы EL1, в результате чего мощность накала увеличивается. Датчик PR1 необходимо расположить таким образом, чтобы свет от лампы EL1 не влиял на изменение его характеристик.

 

Рис. 2. Преобразователь-модулятор

В схеме применяется широтно-импульсный метод (ШИМ) регулирования тока через нагрузочный элемент, в данном случае лампу EL1. Устройство работает следующим образом: микросхема включена в режиме генератора прямоугольных импульсов, которые постоянно присутствуют на выводе 3 с амплитудой, близкой к напряжению источника питания со скважностью 0,1. Интересно, что если из данной схемы исключить диод VD1, тогда длительность фронта низкого уровня уменьшится до половины от периода колебаний генератора. Резистор R1 включен между управляющим входом и выходом микросхемы в цепь, которая определяет время заряда конденсатора С1 до уровня примерно 0,66 Uпит. К этой цепи подключен и фоторезистор PR1, от степени освещенности которого зависит степень зарядки С1 и, соответственно, скважность генерируемых колебаний. Разберем один период колебаний. При малой освещенности фоторезистора PR1 время, в течение которого уровень сигнала на выходе DA1 (вывод 3) низкий, существенно меньше по сравнению со временем, когда сигнал имеет высокий уровень. Таким образом, попадая на базу управляющего транзистора VT1, эти импульсы открывают его, а затем и тиристор, зажигая в результате лампу нагрузки. Лампа горит постоянно, но как будто в полнакала. Когда освещенность фоторезистора падает (наступают сумерки) частота импульсов на базе VT1 уменьшается, таким образом, лампа горит в полный накал. При сильной освещенности процесс обратный.

Режим программного таймера.

Режим программного таймера полностью аналогичен режиму ШИМ, за исключением того, что сигнал на выходе таймера отсутствует. В этом режиме по каждому совпадению содержимого счетного регистра с содержимым регистров R1 или R2 просто генерируется прерывание. Этот режим предназначен для выполнения каких-либо действий по каждому из прерываний. В программе причина прерывания определяется путем проверки флагов прерывания таймера. Каждому источнику прерывания (совпадение с R1, совпадение с R2 или переполнение счетчика) соответствует свой флаг.

Режим «внешнее событие».

В режиме «внешнее событие» таймер функционирует так же, как и в режиме ШИМ, за исключением того, что инкремент содержимого счетчика таймера производится не по импульсам тактового сигнала микроконтроллера, а по импульсам внешнего сигнала, поступающим на тактовый вход таймера (вывод RB7 для таймера Т1 и вывод RC3 для таймера Т2). Соответственно этот режим может использоваться для подсчета внешних событий. В этом режиме можно задать активный фронт (нарастающий или спадающий) внешнего сигнала, по которому будет выполняться счет.

Режим «захват/сравнение».

В режиме «захват/сравнение» инкремент содержимого счетчика таймера производится непрерывно без генерации прерывания. При обнаружении на любом из двух входов таймера заданного перехода уровня сигнала содержимое счетчика сохраняется в соответствующем регистре. Эта возможность захвата может быть использована для определения интервала времени, прошедшего между двумя внешними событиями. Более того, содержимое счетчика может непрерывно сравниваться с содержимым регистра R1. Каждый раз, когда состояние счетчика равно числу, находящемуся в регистре R1, меняется состояние выходного сигнала таймера и генерируется прерывание (если оно разрешено). После наступления этого события счет продолжается без сброса счетчика в состояние 0000h, в отличие от режима ШИМ. В режиме «захват/сравнение» инкремент счетчика производится по внутреннему тактовому сигналу микроконтроллера, прошедшему через 3-битный предделитель. Коэффициент деления предделителя (степень числа 2) задается в диапазоне от 1 до 128.

Два входа захвата называются «Захват 1» и «Захват 2». Для каждого входа можно задать тип фронта (нарастающий или спадающий), по которому будет выполняться сохранение счетчика. По сигналу на выводе «Захват 1» содержимое счетчика сохраняется в специальном 16-битном регистре CAPTURE 1, который доступен только для чтения. По сигналу на выводе «Захват 2» содержимое счетчика сохраняется в регистре R2. При выполнении захвата генерируется прерывание и устанавливается соответствующий флаг.

При переполнении счетчика (при переходе из состояния FFFFh в 0000h) генерируется прерывание (если оно разрешено) и устанавливается соответствующий флаг. Поскольку счетчик работает непрерывно, переполнение происходит регулярно, каждые 65536 приращений. Прерывание по переполнению счетчика может использоваться программой для различения двух последовательных событий, произошедших через большой промежуток времени.

Как уже было сказано, при совпадении содержимого счетчика с содержимым регистра R1 изменяется состояние выходного сигнала. Кроме того, при этом событии генерируется прерывание (если оно разрешено) и устанавливается соответствующий флаг. После этого счет продолжается без сброса счетчика в состояние 0000h. Однако если необходимо четко задать период этого прерывания, в подпрограмме обработки прерывания следует скорректировать содержимое R1 для получения требуемой длительности сигнала.


Лицензия