Programando
PWM
El procedimiento para
la generación de PWM es el siguiente:
La programacion se puede hacer de varios modos, una es tomado los bit individuales de cada registro (de acuerdo al datasheet) e inicializarlos o usar la identificacion que el compilador hace de los bit respectivos, ya que de acuerdo al manual, casi todos ellos tienen un identificador. Por ejemplo en el registro T2CON, el T2CON.2 corresponde al bit TM2ON, T2CON.1 y T2CON.0 corresponden a los bits T2CKPS1 y T2CKPS0 respectivamente.
Se programan los dos PWM con valores fijos
void main()
{
TRISC = 0b10111001;
PR2 = 0xFF; // PERIODO Seteado a 0xFF
T2CON = 0b00000110; // Prescalar de 16 PWM Freq = 1.22kHz -- Clock
20MHz
CCP1CON=0b00001100; //
CCP2CON=0b00001100;
while(1)
{
CCPR1L=50;
CCPR2L=50; // 50 -- 180 us
// 100 -- 320 us
// 150 -- 480 us
// 200 -- 640 us
}
}
void
int_pwm() void set_pwm(char pwm1,
char pwm2) void main()
{
TRISC = 0b10111001;
PR2 = 0xFF; // PERIODO Seteado a 0xFF
T2CON
= 0b00000110; // Prescalar de 16 PWM Freq = 1.22kHz -- Clock 20MHz
CCP1CON=0b00001100;
//
CCP2CON=0b00001100;
}
{
CCPR1L=pwm1;
CCPR2L=pwm2;
}
{
Init_pwm(); // Inicializa pwm
while(1)
{
set_pwm(50,50); // Cambia de valor
}
}