El PWM consigo que funcione, el bucle es para que la señal del PWM comience funcionando en 200 khz (PR2 = 24) y vaya variando a medida que varía el PR2 hasta los 100 khz (PR2 = 49), ya he incluido un delay dentro del bucle para que este un pequeño tiempo en cada valor del PR2, esto funciona bien.
La idea en esta primera parte es encender un balastro con un inversor de puente completo, entonces claro, necesito un pequeño delay al inicio de las señales para evitar problemas en la conmutación, y ahi es donde tengo el problema.
Nocturno66 esa fórmula la vi en el Data Sheet, he calculado el ECCP1DEL y escribi el siguiente codigo pensando que seria sufuciente:
TRISC = 0X00;
TRISD = 0x00;
OpenTimer2( TIMER_INT_OFF & T2_PS_1_1 & T2_POST_1_1);
CCP1CON = 0XAC;
ECCP1DEL = 0x02;
pr = 24; //200 KHZ a 100 KHZ
dc = 50;
while (pr <=49)
{
OpenPWM1(pr);
SetDCPWM1(dc);
Delay10TCYx(10);
pr=pr+1;
dc =dc+2;
}
Con la instrucción CCP1CON = 0xAC, lo que pretendo es habilitar el modo Half-bridge ( CCP1CON <7:6> = 10 ), y P1A, P1B como active-high.
Con la instrucción ECCP1DEL = 0x02, simplemente introducir el valor obtenido en la formula,en este caso 2 puesto que el tiempo de espera es muy pequeño (0,5 microsegundos).
La cosa es que no consigo nada, el pin RC2 sigue funcionando como si estas instrucciones no estarian, y por el pin RD5 que deberia de P1B no sale nada, ¿cual puede ser el problema?, he intentado buscar un ejemplo en internet para ver como funciona pero no he coseguido encontrar nada.
Gracias por la ayuda, me viene muy bien porque acabo de empezar en el mundo de los pic, un saludo.