Предыдущая Следующая

}

//функция задания параметров 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 ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz