Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/06/2010 #1


Problemas con simulacion de pic
Hola que tal? Tengo un problema con una simulacion en Proteus. El circuito funciona, pero despues de uno segundos se "clava" y me da el siguiente problema: [PIC16 CORE] PC=0x001B. Stack underflow executing RETURN instruction.
Aca les dejo el programa: (El retardo es de 1seg)

;************************Mi Primer Programa*****************
;El Micro lee los datos del Puerto A y los refleja en el Puerto B
;mediante los LEDs
;************************************************* **********
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
PROCESSOR 16F84A ;Definimos el micro que vamos a usar
#INCLUDE <P16F84A.INC> ;Se incluye el archivo de definiciones
CBLOCK 0x0C
PDel0
PDel1
PDel2
ENDC
ORG 0X00 ;Establece el origen del programa
;Configuracion de puertos
bsf STATUS, RP0 ;Accedo al banco 1 de la memoria
movlw .31 ;Le doy un valor al registro W para despues moverlo a otro
movwf TRISA ;Configura el Puerto A como entrada
clrf TRISB ;Pongo este registro a 0 para configurarlo como salida
bcf STATUS, RP0 ;Salgo del banco 1
;Programa principal
Inicio
movf PORTA,W ;Mueve el contenido del puerto A a W
movwf PORTB ;Mueve el contenido de W al puerto B
call DEMORA
movlw b'00010101'
subwf PORTA,W
movwf PORTB

DEMORA movlw .14 ; 1 set numero de repeticion (C)
movwf PDel0 ; 1 |
PLoop0 movlw .72 ; 1 set numero de repeticion (B)
movwf PDel1 ; 1 |
PLoop1 movlw .247 ; 1 set numero de repeticion (A)
movwf PDel2 ; 1 |
PLoop2 clrwdt ; 1 clear watchdog
decfsz PDel2, 1 ; 1 + (1) es el tiempo 0 ? (A)
goto PLoop2 ; 2 no, loop
decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (B)
goto PLoop1 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (C)
goto PLoop0 ; 2 no, loop
PDelL1 goto PDelL2 ; 2 ciclos delay
PDelL2 clrwdt ; 1 ciclo delay
return ; 2+2 Fin.
goto Inicio
END ;Fin del codigo
18/06/2010 #2


Respuesta: Problemas con simulacion de pic
Hola, el problema puede estar en que cuando llamas a la subrutina DEMORA con Call DEMORA, cuando retorna lo hace a la instruccion siguiente ( movlw b'00010101'), el programa sigue y se encuentra con la instruccion return, y no sabe a donde volver porque nadie la llamo.
Se entiende?
18/06/2010 #3


Respuesta: Problemas con simulacion de pic
holaa tu problema esta en al final de la subrutina pusiste goto inicio , cuando debe de retornar en donde la llamo , quita el goto inicio que pusiste antes de END ; fin del codigo
y prueba ok

saludos ¡
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.