TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: pepepaco82 en 28 de Julio de 2007, 14:12:16
-
Hola a todos!!!
He montado un circuito entrenador para ir programando un teclado y demas cositas, peeeero a la primera de cambio me encuentro que cuando hago un reset se me queda muerto.
Lo que he hecho es conectar VDD a traves de una R de 10k con la pata 1 MCLR y esta pata 1 con GND mediante un switch, al pulsar el switch, el programa se interrumpe y deberia reinicarse pero lo q pasa es q se queda muerto, la simulacion en Proteus es correcta y se reinicia pero el circuito real se queda muerto y no se por que.
Os adjunto una imagen del circuito y la lista de fuses que pongo con el wizard del PCWH de picc CCS. No se si sera por algun Fuse o por algo de Hardware, gracias.
(http://prueb.jpg)
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES XT //Crystal osc <= 4mhz
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOOSCSEN //Oscillator switching is disabled, main oscillator is source
#FUSES BROWNOUT //Reset when brownout detected
#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 NOWRTB //Boot block not write protected
#FUSES NOCPB //No Boot Block code protection
#FUSES NOWRTC //configuration not registers write protected
#FUSES NOEBTR //Memory not protected from table reads
#FUSES NOEBTRB //Boot block not protected from table reads
#use delay(clock=4000000)
-
Hola a todos,
Me respondo a mi mismo:
EL motivo por el que se queda muerto al resetear es por el LVP, si se comenta la linea que pone #FUSES LVP ---> //#FUSES LVP El circuito ya resetea con normalidad.
¿¿Alguien me lo puede explicar??
-
Ese fuse indica al PIC que entre en modo programación al encontrar un nivel alto en B3. Por eso cuando hacías RESET el PIC no arrancaba; se quedaba en modo programación.
-
Gracias Nocturno por responder
No edite el post por si a alguien le pasaba lo mismo y le servia ver porque. Poco a poco voy aprendiendo. Sin la ayuda de este foro, especialmente de los hilos con microcursillos en C seria imposible. A base de encender y apagar leds se va uno perfeccionando.