Autor Tema: PWM en PIC184550  (Leído 1815 veces)

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

Desconectado davidrrb1

  • PIC10
  • *
  • Mensajes: 4
PWM en PIC184550
« en: 26 de Marzo de 2014, 17:47:56 »
Hola estoy intentando sacar un PWM en el PIC18F4550 mi programa es el siguiente
#include <18F4550.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES XT                       //Crystal osc <= 4mhz
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES BORV20                   //Brownout reset at 2.0V
#FUSES PUT                      //Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES LVP                      //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES PBADEN                   //PORTB pins are configured as analog input channels on RESET
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES PLL1                     //No PLL PreScaler

#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

int16 i=0;

void config (void);

void main()
{
config();
while(1){
for(i=0;i<=1024;i++){
set_pwm1_duty(i);
delay_ms(1000);
}

}
}

void config (void){
   setup_wdt(WDT_OFF);
   output_low(PIN_C2);
   setup_timer_2(T2_DIV_BY_4,249,1);
   setup_ccp1(CCP_PWM);
}

El programa es muy sencillo pero al montarlo no me funciona no se que este mal en el codigo en proteus me funciona bien y en la practica tengo la resistencia de MRCL a Vcc de 5V y la salida el Pin 17 CPP1 y miro la salida en el osciloscopio pero no hace nada agradesco su ayuda.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: PWM en PIC184550
« Respuesta #1 en: 26 de Marzo de 2014, 18:04:00 »
Te falta indicar en los fuses el pin el cual quieres habilitar para la salida del pwm y en la funcion config() agregar setup_oscillator(OSC_NORMAL|OSC_PLL_OFF);

acabo de darme cuenta que usabas en CCP1
« Última modificación: 26 de Marzo de 2014, 18:12:10 por ppyote »
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado davidrrb1

  • PIC10
  • *
  • Mensajes: 4
Re: PWM en PIC184550
« Respuesta #2 en: 26 de Marzo de 2014, 19:16:26 »
Hola acabo de mirar con valores constantes y si dan digamos pongo i=100; o i=200; si si funciona pero lo pongo a variar y ya no funciona agradesco su ayuda.
« Última modificación: 26 de Marzo de 2014, 20:18:38 por davidrrb1 »

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: PWM en PIC184550
« Respuesta #3 en: 28 de Marzo de 2014, 12:21:10 »
el problema podría ser el LVP, cambialo por #fuses NOLVP

otro error es que dejas que tu variable i llegue a 1024 y no debe ser así, solo debe llegar a 1023
"Nada es imposible, no si puedes imaginarlo"


 

anything