Hola jacmsud,
asi es , como te dije con es a instruccion puedes accesar como un goto desde cualquir banco en el que estes, pero por lo que veo tienes una variable que pasa del banco 0 al 1 (o del 1 al 2) es decir ESTAS sobre pasando con esa misma variable de un banco a otro(o pagina como gustes decirlo)
Si tienes un warning como este:
Warning! *** WORD Variable "PROBLEMA" Crossing Bank boundary 0-1 ***
Lo que puedes hacer es ESA variable que esta dandote el warning, lo mas seguro es que sea Word, dividirla en la misma es decir:
.
.
.
.
dim variable as word <--- esta es la que te esta marcando el warning!???
ponerla asi:
dim variable as byte <------- en bancox
dim problema as word <-------esta es la que te marca en warning ya que un byte esta en bancox y la otra en el bancoy,
Si no tienes esa variable puedes cambiar de lugar una byte por esa que tengas desde el picnipio especificada, asi tu variable word o dword(segun sea el caso) queda completa en una pagina.La idea es que no se corte
corregido:
dim problema as word <-------- ambas en el banco x
dim variable as byte<------- en el bancoy
ya en caso que no tengas ninguna con cual cambiar(raro pero no imposible)inventas una aunue no la uses(que desperdicio de espacio , jajajajaja.
Como puedes ver es solo una mala distribucion de variables la que tienes, aunque si no usas comando complejos no es necesario este proceso, pero te aconsejo que esos warnings los corrijas.
Esta tabla te muesta lo que ocupa cada una
FLOAT 4 bytes de RAM.
DWORD 4 bytes de RAM.
WORD 2 bytes de RAM.
BYTE 1 byte de RAM.
BIT 1 byte de RAM por cada 8 BIT"S usados.
Con una simple suma de VARIABLES al inicio puedes distribuirlas mejor y eliminar tu problema.(si es este por supuesto).
En cuanto al LCD , el ejemplo del pana Khasistos funciona con ESOS PUERTOS(por eso los define!!!!!) que estan determinados, si queires usarlos en otros, solo definelos a que corresponda a como lo quieres usar tu, si solo quieres usar a 4 bits de buffer, tienes que definir el puerto y el 4° bit de ese puerto, por ejemplo
por sentido comun si no tienes 8 pines de puerto no puedes usar la transmision a 8 bits)
DECLARE LCD_DTPIN PORTD.4
o
DECLARE LCD_DTPIN PORTB.4
o
DECLARE LCD_DTPIN PORTc.4
Si quieres usar a 8 bits siempre desde el bit de inicio del puerto:
DECLARE LCD_DTPIN PORTB.0
o
DECLARE LCD_DTPIN PORTD.0
etc
no te olvides de usar pullups o activarlas con PORTB_PULLUPS = ON, si el puerto maneja mas funciones como comparadores o demas, usarALL_DIGITAL = TRUE, o activar solo los registros necesarios.
Para forzar a un banco a banco0(que se situe en banco cero) cada ves que llames un label(o etiqueta) puedes usar: DECLARE LABEL_BANK_RESETS = ON o OFF (puedes usar un "- " si no quieres poner todo
Algo que no debes olvidar (por el detalle de los warnings) es leerte el manual Proton+(todo esto viene en el) , aprender ensamblador( bsf status,Rp0 , bcf status,rp0 , etc.....) y leerte el Ds.Lo cual veo de Prioridad Ensamblador que es lo mejor que se puede aprender en lenguajes.
Salu2