Autor Tema: Pwm en CCS con dspic30f4011  (Leído 7873 veces)

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

Desconectado ricardonav46

  • PIC10
  • *
  • Mensajes: 3
Pwm en CCS con dspic30f4011
« en: 03 de Junio de 2009, 22:46:32 »
Hola,  ya que eh visto que nocturno y otros lo han hecho pero con otros compiladores de C, quisiera pedir su colaboracion, para poder implementar el codigo de pwm con dspic 30f4011  usando el CCS.  Pues ya he hecho algunas pruebas pero en la compilación me salen errores que desconosco.

como se que el pwm se puede trabajar  por capture o por pwm motor en este ddspic, pues eh intentado con 2 programas ( a continuacion).



//1PWM MOTOR

#include <30f4011.h>
#fuses FRC_PLL16,NOPROTECT,NOWDT
#use delay(clock=8000000)
#use fast_io(F)
#use fast_io(D)
#use fast_io(B)
#use fast_io(E)      // PARA PERMITIRNOS CONFIGURAR MANUALMENTE


//DECLARACIÓN DE VARIABLES Y FUNCIONES DE USUARIO//////////

signed long duty;

void IniPuertos(){
   set_tris_b(0);   
   set_tris_e(0);   
}   

void main(){
   IniPuertos();
   delay_ms(1000);
     setup_motor_pwm(MPWM_FREE_RUN|MPWM_DUTY_UPDATES_IMMEADIATE);   //// Configura CCP1 como PWM
    duty=150;
while (true){
   set_motor_pwm_unit(1,duty,0);
}
}


...



//2 COMPARE PWM

 #include <30f4011.h>
#fuses FRC_PLL16,NOPROTECT,NOWDT
#use delay(clock=8000000)
#use fast_io(F)
#use fast_io(D)
#use fast_io(B)
#use fast_io(E)      // PARA PERMITIRNOS CONFIGURAR MANUALMENTE


//DECLARACIÓN DE VARIABLES Y FUNCIONES DE USUARIO//////////

signed long duty;

void IniPuertos(){
   set_tris_b(0);   
   set_tris_e(0);   
}   


void pwmini(){
    SETUP_COMPARE(1,COMPARE_PWM); //// Configura CCP como PWM
    setup_timer2(TMR_DIV_BY_8,6); ////  frec
}

void main(){
   IniPuertos();
    pwmini();
   delay_ms(1000);
    duty=150;
while (true){
   SET_PWM_DUTY(1,duty);
}
}



Agradesco su tiempo en revisar y colaboración.



Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Pwm en CCS con dspic30f4011
« Respuesta #1 en: 04 de Junio de 2009, 02:12:46 »
¿Y cuál es el problema?

Desconectado ricardonav46

  • PIC10
  • *
  • Mensajes: 3
Re: Pwm en CCS con dspic30f4011
« Respuesta #2 en: 05 de Junio de 2009, 00:21:39 »
Hola nocturno disculpame por no ser tan claro. Pero pues entre ayer y hoy estuve pegado en mi pc haciendo pruebas de unas ideas que se me vinieron a la mente y queria comprobar mis ideas antes de preguntar nuevamente. hasta que por fin lo saque ( mis ideas dieron resultado), pues la primera parte que queria que es simplemente el pwm usando el oscilador interno.

este es el codigo que funciona. 

/////////////////////////////////////////////////////////////////////////
////                           PWM CON OSCILADOR INTERNO       ////

 #include <30f4011.h>
#fuses FRC,NOPROTECT,NOWDT,NOPUT
#use delay(oscillator=8000000)
#use fast_io(F)
#use fast_io(D)
#use fast_io(B)
#use fast_io(E)      // PARA PERMITIRNOS CONFIGURAR MANUALMENTE
#define OSC_INTERNAL

//DECLARACIÓN DE VARIABLES Y FUNCIONES DE USUARIO//////////

signed long duty;

void IniPuertos(){
   set_tris_b(0);   
   set_tris_e(0);   
   set_tris_d(0);
}   


void main(){
   IniPuertos();
   setup_timer2(TMR_INTERNAL | TMR_DIV_BY_8, 0x1F40);
    setup_compare(1, COMPARE_PWM | COMPARE_TIMER2);
     delay_ms(1000);
  while(TRUE){
      duty=5;
    set_pwm_duty(1,duty * (int16)64);
   delay_ms(5000); 
      duty=15;
    set_pwm_duty(1,duty * (int16)64);
   delay_ms(5000);
      duty=50;
    set_pwm_duty(1,duty * (int16)64);
   delay_ms(5000);
      duty=100;
    set_pwm_duty(1,duty * (int16)64);
   delay_ms(5000);
      duty=150;
    set_pwm_duty(1,duty * (int16)64);
   delay_ms(5000);
      duty=200;
    set_pwm_duty(1,duty * (int16)64);
   delay_ms(5000); 
      duty=500;
    set_pwm_duty(1,duty * (int16)64);
   delay_ms(5000);     
      duty=2100;
    set_pwm_duty(1,duty * (int16)64);
   delay_ms(5000);                           
  }
}


Ahora el siguiente paso que quiero dar es poder implementar interrupcion por cualquier metodo y usando el CCS. estare cacharreando y cualquier cosa lo publico. de antemano agradesco al que pueda colaborarme o aportar en esta nueva tarea.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Pwm en CCS con dspic30f4011
« Respuesta #3 en: 05 de Junio de 2009, 01:41:38 »
Perfecto, pues sigue adelante y ya verás cómo lo consigues.