Hola, la verdad es que me da un poco de verguenza poner por aki el código q estaba haciendo, porq me imagino que no estara muy bien, pero no se como solucinar el problema que tengo. Estoy haciendo una practica la cual consta de un lcd, en el que al iniciarse aparece un menu, en el que te da a elegir dos opciones: o eliges el valor 1 o el valor 2,( los cuales se eligen mediante pulsadores RA03 Y RA04) si elegimos el valor 1 nos lleva a otra pantalla donde nos indica que hemos elegido el numero 1 y lo mismo sucede si hubieramos elegido el valor 2, para volver al menu inicial bastaria con pulsar los dos pulsadores a la vez, estoy utilizando un 16f84 con un lcd de 2x 16. El problema que tengo es que cuando le doy para crear el .hex, me dice que no hay memoria ram suficiente o algo asi : 0:0 E-0 Linker error: Not enough RAM row __lib_lcd8custom.ppas y 0:0 E-0 Linker error: Not enough RAM out_char __lib_lcd8custom.ppas y no me deja compilarlo. Supongo que cambiando a otyro pic mas potente no habria problema, pero tambien supongo que mi programa es muy básico y no lo estoy jhaciendo bien, estoy consumiendo mas memoria de lo se deberia,.
program menulcd
dim a as byte
dim b as byte
Sub procedure menu1
Lcd8_Cmd(Lcd_clear)
lcd8_cmd (Lcd_Blink_Cursor_On)
Lcd8_Out(1, 1,"has elegido 1")
Lcd8_Out(2,1,"volver:pulsa 1y2")
End Sub
Sub procedure menu2
Lcd8_Cmd(Lcd_clear)
lcd8_cmd (Lcd_Blink_Cursor_On)
Lcd8_Out(1, 1,"has elegido 2")
Lcd8_Out(2,1,"volver:pulsa 1y2")
End Sub
main:
TRISB = 0
TRISA = %11000
Lcd8_Init(PORTB,7,6,5,4,3,2,1,0, PORTA,0,1,2)
Lcd8_Cmd(Lcd_clear)
lcd8_cmd (Lcd_Blink_Cursor_On)
Lcd8_Out(1, 1,"pulsa una opcion")
Lcd8_Out(2,3,"1 o 2")
if PORTA.4 = 1 then
menu1
a =1
else
goto main
end if
if PORTA.5 = 1 then
menu2
b =1
else
goto main
end if
if a = b then
goto main
end if
end.
Gracias de antemano, un saludo.