цифровая электроника
вычислительная техника
встраиваемые системы

 

Программирование NRF24LE1. Широтно-импульсная модуляция (ШИМ)

Автор: Mike(admin) от 25-11-2016, 20:45

Задумывались ли вы когда-либо о том, что свет фонарика (вспышки) вашего телефона, когда включен, на самом деле не постоянно включен? На самом деле интенсивность света, чтобы сэкономить энергию аккумулятора телефона, колеблется с определенной частотой, которую наши глаза не могут распознать. Но как это работает? Ответ прост: широтно-импульсная модуляция (ШИМ).


Программирование NRF24LE1. Широтно-импульсная модуляция (ШИМ)

ШИМ является важным способом получения аналогового напряжения на основе цифрового сигнала. Этот способ применяется для управления светодиодами, серводвигателями и т.п. Модуль NRF24LE1 также имеет в своем составе ШИМ, и об этом поговорим в данном материале.


Вообще для генерации ШИМ в NRF24LE1 можно задействовать два метода: использовать задержку для генерации импульсов желаемой ширины или использовать специальный встроенный модуль ШИМ.


Первый метод довольно прост в понимании, но не слишком эффективен с точки зрения производительности. Заключается он в том, что сначала состояние выходной линии устанавливается в логическую 1. Затем осуществляется задержка, для того, чтобы генерировать импульс высокого логического уровня. После окончания задержки состояние выхода переводится в логический 0. Снова организуется задержка для формирования сигнала низкого логического уровня. Затем все повторяется. Скважность в данном случае можно задавать, изменяя время задержек. Данный метод создает нагрузку на основной цикл программы, поэтому для более сложных приложений рекомендуется использовать встроенный модуль ШИМ.


У NRF24LE1 имеются два канала ШИМ: PWM0 и PWM1. Для PWM0 выделена линия 3 порта 0, а для PWM1 линия 4 порта 0. Диапазон воспроизводимых частот составляет от 2 КГц до 254 КГц при тактировании ядра с частотой 16 МГц. ШИМ управляется тремя регистрами. Их значение в работе модуля ШИМ показано в приведенной ниже таблице.


Программирование NRF24LE1. Широтно-импульсная модуляция (ШИМ)

Для генерации ШИМ-сигналов с помощью модуля нужно выполнить несколько простых шагов. Сначала нужно выбрать длину периода путем записи битов7:6 регистра PWMCON. Затем следует выбрать делитель для частоты ШИМ посредством битов 5:2 регистра PWMCON. Далее необходимо включить PWM0 или PWM1, используя соответственно бит 1 или бит 0 регистра PWMCON. Установить скважность ШИМ можно с использованием PWMDC1 и PWMDC0.


Для понимания работы ШИМ на практике можно собрать схему, приведенную ниже, и воспользоваться приведенным далее кодом, чтобы запрограммировать NRF24LE1 для генерации ШИМ-сигналов, которые будут изменять яркость свечения светодиода.


Программирование NRF24LE1. Широтно-импульсная модуляция (ШИМ)

Код программы:



#include"reg24le1.h"
#include"hal_delay.h"
 
void main()
{
int i = 0, j = 0; // переменные цикла
P0DIR = 0; // Порт 0 настраиваем на выход
PWMCON = 0xfe; // активируем PWM1
 
// бесконечный цикл
while(1)
{
for(i= 0xff; i--; i > 0x00)
{
PWMDC1 = i ; // меняем скважность
delay_ms(10); // задержка 10 мс
}
}
}

© digitrode.ru


Теги: NRF24LE1, ШИМ



Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий