Autor Tema: Novato en problemas.. 16F84A se reinicia  (Leído 4289 veces)

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

Desconectado PICDEIVID1.1

  • PIC10
  • *
  • Mensajes: 1
Novato en problemas.. 16F84A se reinicia
« en: 03 de Diciembre de 2003, 16:50:00 »
Hola que tal ,   muy buen sitio!!!!

Soy un estudiante de ingenieria en electrónica
apenas estoy programando mi primer pic  el grandiosisimo 16f84A
pero tengo un problemita espero alguien me pueda ayudar.

He metido al pic un sencillo programa para que funcione como un semáforo. no utilizo interrupciones, solo utilizo la instrucción DECFSZ para saltar un goto en una subrutina que sirve para hacer un DELAY de 0.5 Segundos. el problema es que al momento de probar el programa en el pic este se reinicia solo sin terminar de hacer todas las instrucciones.

Ya he intentado lo siguiente:

Desactive el WatchDog desde el encabezado

list p=16f84A
   include   <p16f84A.inc>
_WDT_OFF                     EQU     H\"3FFB\"
_RC_OSC                      EQU     H\"3FFF\"

Desactivo el bit GIE del registro INTCON (ya intente desactivando los demas)

El programa lo inicio desde la posición h\"20\" de la EEPROM para brincarme la 05 que es donde esta la interrupcion

en org 0 le doy un goto INICIOpara irme a la 20
y por si a caso entra la interrupcion en la 05 tengo un RETFIE

Solo utilizo el PORTB como salidas

para salir de dudas ya intenté haciendo el programa sencillo sin subrutinas y suprimiendo la instrucción DECFSZ y de todos modos en algun lugar el pic se reinicia.

estare muy agradecido ya que hice y deshice el programa y pues llegué a la brillante deducción de que el problema es de una parte del pic que desconozco aun.  

no pude adjuntar el programa pero aqui esta el encabezado

   list p=16f84A
   include   <p16f84A.inc>
_WDT_OFF                     EQU     H"3FFB"
_RC_OSC                      EQU     H"3FFF"
AA       equ     H"0C"    ; Variable utilizada en la subrutina MEDSEG
BB       equ     H"0D"    ; "     "       "       "
CC       equ     H"0E"    ; "     "       "       "
DD       equ     H"0F"    ; Utilizada en la subrutinas DOSSEG y SEISSEG y para el numero de
            ; parpadeos del led verde
   ORG   0   
   GOTO   CERO
   
   ORG   5
   RETFIE

CERO   ORG   20      ; Inicia en la posicion Cero del programa
   BCF   INTCON,GIE
   BCF   INTCON,EEIE
   BCF   INTCON,T0IE
   BCF   INTCON,INTE
   BCF   INTCON,RBIF
   BCF   INTCON,T0IF
   BCF   INTCON,INTF
   BCF   INTCON,RBIE

   BSF   STATUS,RP0
   MOVLW   d"00"
   MOVWF   TRISB
   GOTO   INICIO
INICIO  MOVLW   b"00100001"     ; Enciende Rojo, Verde
   MOVWF   PORTB           ; Envia el dato al puerto BB
        CALL    SEISSEG            ; Llama a un retardo de 6 seg.
   MOVLW   d"004"      
        MOVWF   DD               ; DD = 4
FLIP    MOVLW   b"00100001"
        MOVWF   PORTB           ;Enciende Rojo, Verde
   CALL   MEDSEG      ;Retardo de 0.5Segundos
   MOVLW   b"00100000"   





gracias y un saludo a los picmaniacos



Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: Novato en problemas.. 16F84A se reinicia
« Respuesta #1 en: 03 de Diciembre de 2003, 17:18:00 »
hola, creo esta mal el encabezamiento...

prueba con esto


   LIST  P=16F84A
   #INCLUDE "p16f84A.inc"
   ERRORLEVEL      -302, -307    ;(NO FIGURAN LOS ERRORES DE CAMBIO DE PAGINA)


;---------------------------------------------------------------------------
   __CONFIG _CP_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC   ;CONFIGURO
;PARA LA GRABACION, CODE PROTECT On, RESET DE ENCENDIDO PERRO GUARDIAN=SI,ETC

reset   org   00h   ;el vector de reset es la dirección 00
   goto   inicio   ;se salta al inicio del programa


fijate que te falta la palabra  __config

para cargar archivos, lo puedes hacer en www.todopic1.foro.st  que es el almacen, ya que aqui no hay mas lugar...


Suerte!

Norberto
pd...  las barras a la izquierda no corresponden...


Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

achamber2k3

  • Visitante
RE: Novato en problemas.. 16F84A se reinicia
« Respuesta #2 en: 03 de Diciembre de 2003, 17:25:00 »
Ya que hablan de esto quiero comentarles mi experiencia a ver si a alguno le sirve de algo, monte un reloj contador descendente y tenia un problema similar, el PIC se reiniciaba cuando el contador llegaba a determinado numero, despues de perder mi tiempo revisando el firmware, watchdog y todo eso, entre a revisar el circuito, pues resulta que tenia un pin del puerto configurado en salida que estaba en corto con otro y al hacerse uno alto y otro bajo hacian corto circuito y el pic se reiniciaba.

Asi que cuando les ocurra esto no siempre es firmware.

Suerte en sus proyectos.

Saludos,

AChamber.

Desconectado ejmc

  • PIC18
  • ****
  • Mensajes: 311
RE: Novato en problemas.. 16F84A se reinicia
« Respuesta #3 en: 03 de Diciembre de 2003, 19:24:00 »
Hola, otra cosita, le pusiste la resistencia de 4k7 entre MCLR (pin 4)
y Vcc
Yo siempre me olvido y me pasa eso, se reeinicia en cualquier parte
Saludos

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Novato en problemas.. 16F84A se reinicia
« Respuesta #4 en: 03 de Diciembre de 2003, 23:08:00 »
Se te reiniciará seguramente por culpa del "perrito". Este lo puedes desactivar (si no lo vas a usar) bien en la palabra de configuración, como bien te indica Norberto, bien desde el programa grabador del PIC (por ejemplo el ICPROG). Si lo quieres usar hay que incluir en el programa la instrucción clrwdt

Un saludo

Desconectado Elena2000

  • PIC24F
  • *****
  • Mensajes: 722
RE: Novato en problemas.. 16F84A se reinicia
« Respuesta #5 en: 04 de Diciembre de 2003, 03:13:00 »
Eso es, ratifico lo que apunta Pocher. Utiliza el perro guardián y pon la instrucción clrwdt cada vez que inicies un bucle.

Saludos!
Elena

Desconectado felipito1

  • PIC16
  • ***
  • Mensajes: 118
RE: Novato en problemas.. 16F84A se reinicia
« Respuesta #6 en: 04 de Diciembre de 2003, 20:30:00 »
Tambièn puede ser que el programa en determinada parte estè con el PCLATH desubicado y le salta para donde no es...  y se le bloquea o se và para inicio,  podrìa ocurrir al utilizar un GOTO, ò un ADDWF ò un CALL  etc.

Desconectado elreypic

  • PIC12
  • **
  • Mensajes: 79
RE: Novato en problemas.. 16F84A se reinicia
« Respuesta #7 en: 10 de Diciembre de 2003, 16:50:00 »
Hola revisando el codigo que proporcionas, me doy cuenta que estas trabajando la RAM en un banco equivocado. En tu código tienes:

BSF STATUS,RP0
MOVLW D"00"
MOVWF TRISB
GOTO INICIO                    ;Aqui esta tu problema

Tu codigo debería ser:

BSF STATUS,RP0                ;Coloca RAM en el banco 1
MOVLW D"00"
MOVWF TRISB
BCF STATUS,RP0                ;Regresa al banco 0 de la RAM
GOTO INICIO

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Novato en problemas.. 16F84A se reinicia
« Respuesta #8 en: 21 de Diciembre de 2003, 13:31:00 »
yo tuve el mismo problema con un programa super sencillo de pender un led al activar un pin, y no era para nada el software, lo que debes hacer es crear un programa sencillo si tienes el mismo problema de reinicios  y reinicios, lo mas seguro que sea es la fuente mi amigo, yo cambie mi fuente y dejo de tener esos errores, el por que??? no lo se pero la cambie y todos mis programas han funcionado sin ese problema.
baygon

Desconectado fopy

  • PIC10
  • *
  • Mensajes: 35
RE: Novato en problemas.. 16F84A se reinicia
« Respuesta #9 en: 22 de Diciembre de 2003, 04:36:00 »
Adhiero a la rta de EJMC, tenes que poner un 1 en (MCLR, ya que trabaja con logica inversa y está activado con cero) basta con una resistencia de 1k a Vcc

Desconectado El_cuarenton

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 244
RE: Novato en problemas.. 16F84A se reinicia
« Respuesta #10 en: 27 de Diciembre de 2003, 21:47:00 »
Hola.

Te aconsejaria que revises el tema de la fuente de alimentacion.
Esta el condensador entre las patas de alimentacion del pic lo mas proximo posible.
Esta la tension totalmente estabilizada.
El reset esta a uno.
Me gustaria leer el codigo completo.

Suerte El_cuarenton


 

anything