Pessoal, escrevi esses dois programas (C e assembly) usando o PWM, os dois funcionam no Proteus mas no protoboard não. O problema não está no circuito do protoboard pois no programa em C coloquei também para piscar um LED em RB0 e o LED realmente pisca na prática mas o PWM não funciona.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
list p=16f877A
include p16f877A.inc
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
clrf PORTC
bsf STATUS,RP0
clrf TRISC
bcf STATUS,RP0
bsf T2CON,T2CKPS1
bsf T2CON,T2CKPS0
bsf CCP1CON,.3 ;Liga o modo PWM1
bsf CCP1CON,.2
movlw .125 ;Valor do PWM
movwf CCPR1L
goto $
end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#include <16F877A.h>
#use delay(clock=4000000)
#fuses NOWDT,XT,PUT,NOPROTECT,NODEBUG,BROWNOUT,NOLVP,NOCPD,NOWRT
main()
{
setup_ccp1(ccp_pwm);
set_pwm1_duty(125);
while(true)
{
output_high(PIN_B0);
delay_ms(500);
output_low(PIN_B0);
delay_ms(500);
}
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;