Hola a todos.
Aprovecho este hilo para plantear un problema que tengo. Estoy programando un 16F887, tengo una tabla de 180 valores, y los quiero sacar por el puerto B. Ahora bien, a pesar de que las líneas de código no superan 265 posiciones, cada vez que llamo la tabla, me dice que rebalsa la pila.
Es un programa muy corto, y por eso ya me cansé de darle vueltas y no encontrarle solución, seguramente es un error de principiante que no veo, o algo que se me pasa por alto, así que si alguien puede verlo desde otra perspectiva y darme una mano, me vendría mas que bien.
Desde ya muchas gracias a todos y saludos!
Aprovecho este hilo para plantear un problema que tengo. Estoy programando un 16F887, tengo una tabla de 180 valores, y los quiero sacar por el puerto B. Ahora bien, a pesar de que las líneas de código no superan 265 posiciones, cada vez que llamo la tabla, me dice que rebalsa la pila.
Es un programa muy corto, y por eso ya me cansé de darle vueltas y no encontrarle solución, seguramente es un error de principiante que no veo, o algo que se me pasa por alto, así que si alguien puede verlo desde otra perspectiva y darme una mano, me vendría mas que bien.
Código:
;************TABLA************
LIST P=16F887
#INCLUDE <P16F887.INC>
__CONFIG _CONFIG1, _HS_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_ON & _LVP_OFF
__CONFIG _CONFIG2, _BOR40V & _WRT_OFF
ORG 0x0000
GOTO INICIO
CBLOCK 0x0020
CONT
LIM
ENDC
ORG 0x0005
TABLA
MOVF CONT,W
ADDWF PCL,F
DT 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x02,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0B,0x0C,0x0D,0x0E,0x10,0x11,0x12,0x13,0x14,0x15,0x17,0x18,0x19,0x1B,0x1C,0x1D,0x1F,0x20,0x22,0x23,0x25,0x27,0x28,0x2A,0x2B,0x2D,0x2F,0x31,0x32,0x34,0x36,0x38,0x3A,0x3C,0x3D,0x3F,0x41,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x54,0x56,0x58,0x5A,0x5C,0x5E,0x60,0x63,0x65,0x67,0x69,0x6B,0x6D,0x70,0x72,0x74,0x76,0x79,0x7B,0x7D,0x7F,0x81,0x84,0x86,0x88,0x8A,0x8D,0x8F,0x91,0x93,0x95,0x98,0x9A,0x9C,0x9E,0xA0,0xA2,0xA5,0xA7,0xA9,0xAB,0xAD,0xAF,0xB1,0xB3,0xB5,0xB7,0xB9,0xBB,0xBD,0xBF,0xC1,0xC3,0xC5,0xC7,0xC9,0xCA,0xCC,0xCE,0xD0,0xD1,0xD3,0xD5,0xD6,0xD8,0xDA,0xDB,0xDD,0xDE,0xE0,0xE1,0xE3,0xE4,0xE5,0xE7,0xE8,0xE9,0xEA,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF7,0xF8,0xF9,0xF9,0xFA,0xFB,0xFB,0xFC,0xFC,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF
INICIO
BANKSEL TRISB
CLRF TRISB ;PUERTO A USAR COMO SALIDA 8 BITS
BANKSEL PORTB
CLRF PORTB
BANKSEL ANSEL
CLRF ANSEL
CLRF ANSELH
CLRF INTCON
BANKSEL OSCCON
MOVLW B'01110101'
MOVWF OSCCON
CLRF CONT
SUM
INCF CONT,F
CALL TABLA
MOVWF PORTB
MOVF CONT,W
SUBLW 0XB4
BTFSS STATUS,2
GOTO SUM
CLRF CONT
GOTO SUM
END