Autor Tema: Problema al cambiar el duty del PWM con css en el PIC16f818  (Leído 1616 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dcal

  • PIC10
  • *
  • Mensajes: 3
Problema al cambiar el duty del PWM con css en el PIC16f818
« en: 14 de Julio de 2009, 06:52:21 »
Hola a todos:

Llevo ya varios días trabajando con un PIC16f818 para realizar un controlador de tensión gracias a PWM.

Básicamente el circuito tiene que fijar una tensión de salida (variable) independiente de la carga. Para ello se utiliza un control PWM y se realimenta la tensión de salida para realizar los campios en el duty del PWM.

Y mi problema es el siguiente:
     Al cambiar el duty muchas veces el programa se pierde e incluso "sale" del bucle while(true)

Lo he depurado lo siguiente como para saber que el problema está al cambiar el duty del PWM.

Os dejo la parte del codigo del bucle de control a ver si podis decirme algo:
Código: [Seleccionar]
set_pwm1_duty(ciclopositivo);
while (1)
{
taux = 0;
for (i=0 ; i<4; i++)
{
taux += (int16) (read_adc()>>6);
delay_us(40);
}
tension = taux>>2; //Se realiza una media de la tension (filtro paso bajo) para evitar picos

if ((tension <= (tref - HYS))&&(ciclopositivo < DUTYMAX))
{
ciclopositivo++;
set_pwm1_duty(ciclopositivo);
}
else if ((tension >= (tref + HYS )) && (ciclopositivo != 0))
{
ciclopositivo--;
set_pwm1_duty(ciclopositivo);
}
delay_ms(400); //Retardo para antes de volver a controlar la salida
}

Muchas gracias por todo.

Salu2

Desconectado dcal

  • PIC10
  • *
  • Mensajes: 3
Re: Problema al cambiar el duty del PWM con css en el PIC16f818
« Respuesta #1 en: 14 de Julio de 2009, 12:20:42 »
Hola

Aun no he conseguido saber el porqué pero he descubierto que falla cuando se establece el duty a 6 si haces la chapuza de saltarte el ciclo 6 funciona sin ningún problema.

Si alguien me da una idea genial.

Salu2

Desconectado dcal

  • PIC10
  • *
  • Mensajes: 3
Re: Problema al cambiar el duty del PWM con css en el PIC16f818
« Respuesta #2 en: 15 de Julio de 2009, 03:49:19 »
Me autocontesto:

Ya he encontrado el error y no era software... Resulta que una de las bobinas que se utilizan en el circuito no está bien dimensionada y eso probocaba una realimentación muy extraña que baja la tensión de alimentación del PIC. Esto sólo ocurría para determinados valores del duty...

Bueno salu2 y gracias.


 

anything