}
//функция задания параметров PWM в каналах 2 и 4 //t_PWM - значение периода PWM в периодах pclk void PWMset(U32 t_PWM) {
сделать выходом PWM2 сделать выходом PWM4 //предделитель PWM не используется //управление двойным перепадом в канале 2 PWM //управление двойным перепадом в канале 4 PWM //включить выход в канале 2 PWM //включить выход в канале 4 PWM //все прерывания и действия по совпадению // запретить
PWMMR0 = |
:t_PWM; |
//задание периода PWM |
|||
PWMMR1 = |
"(3 *-t. |
.PWM) It |
; //задание параметров импульсов |
в канале |
2 |
PWMMR2 = |
(5 * t. |
.PWM) Ii |
// |
||
PWMMR3 = |
(7 * t. |
.PWM) Ii |
; //задание параметров импульсов |
в канале |
4 |
PWMMR4 = |
t_PWM/i |
3; |
// |
||
PWMLER = |
OxlF; |
// |
"защелкивание" установленных значений |
в каналах |
0. |
PWM
PWM
}
//Функция включения модуля PWM void PWMstart()
{
PWMTCR_bit.CR = 1; //сброс счетчика и предделителя PWM
PWMTCR_bit.СЕ = 1; //разрешение счетчика и предделителя PWM
PWMTCR_bit.PWMEN = 1; //разрешить режим PWM
PWMTCR_bit.CR = 0; //начало счета счетчика и предделителя PWM
}
//Функция отключения модуля PWM void PWMstop() {
PWMTCR_bit.CR = 1; //сброс счетчика и предделителя PWM
PWMTCR_bit.PWMEN = 0; //запрещение режима PWM
}
//Функция преобразования в десятичное представление и индикации //периода PWM в периодах pclk void PWMt_ind(U32 t_PWM) {
rlOOOOOO = t_PWM / 1000000; t_PWM = t_PWM % 1000000; rlOOOOO = t_PWM / 100000; t_PWM = t_PWM % 100000; rlOOOO = t_PWM / 10000; t_PWM = t_PWM % 10000; rlOOO = t_PWM / 1000; t_PWM = t_PWM % 1000; rlOO = t_PWM / 100; t_PWM = t_PWM % 100; rlO = t_PWM / 10; j rl = t_PWM % 10;
lcd_pro_data(rlOOOOOO,0); //индикация значения t_PWM с адреса 0 ОЗУ ЖКИ
lcd_tek_data(rl00000); //
lcd_tek_data(rlOOOO); //
lcd_tek_data(rl000); //
lcd_tek_data(rl00); //
Icd_tek_data(rl0); //
lcd_tek_data(rl); //
}
//-----------------------------------------------------------------------
Файл pwm.h
//------------------------------------------------------------------------
//Заголовки и определения обелуж модуля PWM
//------------------------------------------------------------------------
#include "hardware.h" // подключение специальных заголовков и определений //Объявление функции инициализации модуля PWM void PWMinit();
//Объявление функции задания параметров PWM void PWMset(U32);
//Объявление функции включения модуля PWM void PWMstart();
//Объявление функции отключения модуля PWM void PWMstop();
//Объявление функции преобразования в десятичное представление и индикации
//периода PWM в периодах pclk void PWMt_ind(U32) ;
//------------------------------------------------------------------
Файл main.с программы обслуживания PWM
//------------------------------------------------------------------------
// Основная программа обслуживания PWM
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |