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.