Autor Tema: codigo para generar pwm por software en CCS  (Leído 13504 veces)

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

Desconectado spaceluis

  • PIC10
  • *
  • Mensajes: 42
codigo para generar pwm por software en CCS
« en: 11 de Marzo de 2013, 12:42:39 »
k tal amigos pues he estado tratando de configurar un pwm por software para controlar leds RGB pero bueno primero lo primero que es generar los PWM ahorita no busco generar correctamente los anchos de pulso ni las frecuencias correctas únicamente poder controlar el ancho de pulso osea generar correctamente las señales  y poder manipular el valor del ancho de pulso.

el codigo que tengo hasta ahorita es el siguiente

#include <16f877A.h>
#fuses NOWDT,HS
#use delay(clock=4000000)

 int sube,t;
 //float alto=0,bajo=0;
#INT_TIMER1
VOID INTERRUPCION1(void)
{
set_timer1(64536);
sube++;

     if(sube==1)
     {
    output_high(pin_b1);
    t=0;
     }
      if(sube==60)
      { t++;
      output_low(pin_b1);
             if (t==19940)
         {
                 sube=0;
         }
          
     }
  
      
}

void main()
{
setup_timer_1(t1_internal|t1_div_by_1);
set_timer1(64536);
enable_interrupts(INT_TIMER1);
enable_interrupts(global);
INTERRUPCION1();
}

lo que estoy tratando de hacer es que con cada desborde de 10 ms del timer incremente la varibale "sube" con el primer desborde enciendo el "pin_b1" y al llegar a cierto lo apago, el problema es que me generara una señal mas o menos cuadrada entonces no se de que manera hacer que la señal salga con la forma correcta , asi que agradecería ayuda.


pd. trate de adjuntar la foto de la simulación de la señal pero al poner la dirección donde esta guardada no me apareció la foto.
« Última modificación: 11 de Marzo de 2013, 12:51:42 por spaceluis »

Desconectado spaceluis

  • PIC10
  • *
  • Mensajes: 42
Re: codigo para generar pwm por software en CCS
« Respuesta #1 en: 11 de Marzo de 2013, 12:57:53 »
amigos encontre el error mientras escribia mi pregunta pero no supe como borrar el mensaje si me dicen como se los agradesco jajaj sorry

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: codigo para generar pwm por software en CCS
« Respuesta #2 en: 11 de Marzo de 2013, 19:41:44 »
amigos encontre el error mientras escribia mi pregunta pero no supe como borrar el mensaje si me dicen como se los agradesco jajaj sorry

arriba a la derecha de tu post esta el boton de MODIFICAR.....
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado oktubre

  • PIC10
  • *
  • Mensajes: 30
Re: codigo para generar pwm por software en CCS
« Respuesta #3 en: 11 de Marzo de 2013, 23:57:28 »

Dale una mirada a este por:
http://www.todopic.com.ar/foros/index.php?topic=25995.0

Creo puede servirte en el post de BrunoF


    char step, pwm1,pwm2,pwm3;
    step=1;
    pwm1=128;
    pwm2=64;
    pwm3=250;
     
    while(1){
    if(pwm1>=step) output_high(pin_b0) else output_low(pin_b0);
    if(pwm2>=step) output_highpin_b1) else output_low(pin_b1);
    if(pwm3>=step) output_high(pin_b2) else output_low(pin_b2);
    //delay_us(xxx);
    step++;                    //incrementar paso
    if(!step) step++;        //si step==0, step=1
    }
     
"La palabra elefante ha matado muchos más animales de esa especie que cualquier otra arma" (alguno lo dijo)

Desconectado spaceluis

  • PIC10
  • *
  • Mensajes: 42
Re: codigo para generar pwm por software en CCS
« Respuesta #4 en: 12 de Marzo de 2013, 16:35:00 »

Dale una mirada a este por:
http://www.todopic.com.ar/foros/index.php?topic=25995.0

Creo puede servirte en el post de BrunoF


    char step, pwm1,pwm2,pwm3;
    step=1;
    pwm1=128;
    pwm2=64;
    pwm3=250;
     
    while(1){
    if(pwm1>=step) output_high(pin_b0) else output_low(pin_b0);
    if(pwm2>=step) output_highpin_b1) else output_low(pin_b1);
    if(pwm3>=step) output_high(pin_b2) else output_low(pin_b2);
    //delay_us(xxx);
    step++;                    //incrementar paso
    if(!step) step++;        //si step==0, step=1
    }
     




hey gracias pero ya solucione ese problema que amable