Autor Tema: Depurando mi programa  (Leído 3539 veces)

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

Desconectado tavisho

  • PIC12
  • **
  • Mensajes: 94
Depurando mi programa
« en: 18 de Abril de 2011, 20:58:12 »
Saludos. Finalmente en mi regreso a los pics logré hacer funcionar mi 16f877a con un lcd 2x16 y el ptdo D del pic. El problema es que la simulación de proteus me marca mensajes de advertencia Stack overflow 0x71 ejecutando call instrcution, stack underflow executing return instruction 0x79 y stack overflow 0x17 executing call instruction. Alguien sabe qué significa esto exactamente y cómo evitarlo?
Código: [Seleccionar]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Este programa lo hago para mandar el mensaje Hola al LCD a través ;;
;; de PTOD. ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

List P=16f877A
include p16f877A.inc ; Define el procesador a usar y su archivo include para el contrl
RADIX HEX
ORG 0x00
goto Inicio ; salta al inicio
ORG 0x05 ; salta el vector de reset

Mensajes
ADDWF PCL,F
Mensaje0
DT "Saludos TodoPic", ; mensaje a ser mostrado en el LCD

Inicio
nop
call LCD_Inicializa
movlw Mensaje0 ; Después de inicializar el módlo LCD muestra el mensaje indicado
Bucle call LCD_Mensaje
nop
sleep ; el PIc va a modo de bajo


INCLUDE <LCD_4BIT.INC>
INCLUDE <RETARDOS.INC>
INCLUDE <LCD_MENS.INC>
end

 De acuerdo al contador de programa pertenecen a:

   movwf   LCD_GuardaDato      ; Guarda el dato a enviar  0x71
                LCD_CodigoCGROM
   movwf   LCD_Dato      ; Guarda el valor del carácter y comprueba si es 0x79
                movlw    0x06                       ; 0x17

Ayuda para eliminar esos molestos mensajes por favor  :5] :5]

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Depurando mi programa
« Respuesta #1 en: 21 de Abril de 2011, 22:25:51 »
Parece extraño que haya overflow, pues los 16F tienen 8 niveles y difícil sobre-pase eso con las librerías del LCD. Igual puedes verificarlo viendo cuantos call anidados hay.


Nota: En proteus coloca MCLR a VDD.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado tavisho

  • PIC12
  • **
  • Mensajes: 94
Re: Depurando mi programa
« Respuesta #2 en: 21 de Abril de 2011, 22:36:53 »
DE hecho suky hay 9 llamadas a rutina (call) en esa parte del control del lcd, es por eso que se me está poniendo en overflow :(, aunque no sé si a los demás foreros que usan la rutina Ra-ma les pase esto :S
« Última modificación: 21 de Abril de 2011, 22:41:47 por tavisho »

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Depurando mi programa
« Respuesta #3 en: 21 de Abril de 2011, 23:06:32 »
DE hecho suky hay 9 llamadas a rutina (call) en esa parte del control del lcd, es por eso que se me está poniendo en overflow :(, aunque no sé si a los demás foreros que usan la rutina Ra-ma les pase esto :S
:shock: 9 llamadas anidadas, o sea antes de retornar llama a otra? Muy mala librería para ser ASM! Prueba utilizando otra  ;-)


Saludos!

No contesto mensajes privados, las consultas en el foro

Desconectado tavisho

  • PIC12
  • **
  • Mensajes: 94
Re: Depurando mi programa
« Respuesta #4 en: 21 de Abril de 2011, 23:15:34 »
DE hecho suky hay 9 llamadas a rutina (call) en esa parte del control del lcd, es por eso que se me está poniendo en overflow :(, aunque no sé si a los demás foreros que usan la rutina Ra-ma les pase esto :S
:shock: 9 llamadas anidadas, o sea antes de retornar llama a otra? Muy mala librería para ser ASM! Prueba utilizando otra  ;-)


Saludos!


disculpa me expresé mal, si hay llamados a return :s