TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: bruceral en 30 de Octubre de 2006, 15:49:33
-
Tengo la demoboard Pickit2
Descargo el programa blink en la demo board que viene de ejemplo en el tutorial, Se enciende el led y se apaga una vez. El programa esta diseñado para que lo haga continuadamente haciendo intermitencia y no lo hace.
Sabeis como lo puedo solucionar?
-
Pega aquí el programa, a ver si averiguamos porqué
-
Pega aquí el programa, a ver si averiguamos porqué
#include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
cblock 0x20
Delay1 ; Define two file registers for the
Delay2 ; delay loop
endc
org 39
Start
bsf STATUS,RP0 ; select Register Page 1
bcf TRISC,0 ; make IO Pin B.0 an output
bcf STATUS,RP0 ; back to Register Page 0
MainLoop
bsf PORTC,0 ; turn on LED C0
OndelayLoop
decfsz Delay1,f ; Waste time.
goto OndelayLoop ; The Inner loop takes 3 instructions per loop * 256 loopss = 768 instructions
decfsz Delay2,f ; The outer loop takes and additional 3 instructions per lap * 256 loops
goto OndelayLoop ; (768+3) * 256 = 197376 instructions / 1M instructions per second = 0.197 sec.
; call it a two-tenths of a second.
bcf PORTC,0 ; Turn off LED C0
OffDelayLoop
decfsz Delay1,f ; same delay as above
goto OffDelayLoop
decfsz Delay2,f
goto OffDelayLoop
goto MainLoop ; Do it again...
end
El goto mainloop tendria que hacer repetir la secuencia y no lo hace, a ver si me puedes ayudar.
Gracias
-
bueno para empezar , ojo solo es una apreciacion normalmente cuando yo hago mis programas incluyo una lista que no veo que pusieras
list p=16f877
include <p16f877.inc>
luego de esto viene la zona de declaracion de variables y luego esto
org 000H
en esta parte no c pq le pones 39 si lo explicas seria bueno
ojala esto te sea de ayuda
suerte