TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: eddie323983 en 12 de Octubre de 2004, 07:00:00
-
Muy buenas:
Este es mi primer mensaje en el foro aunque si que he investigado un poco por él y no he encontrado respuesta a mi duda.
El caso es que estoy utilizando el pic 16f874a y quisiera saber si puedo guardar un dato en un registro de forma de que sea accesible tanto si estoy en el banco 1 como si estoy en el banco 0 o bien no me queda más remedio que pasar el dato del registro (estando naturalmente en el banco correspondiente) al registro W, moverme de registro y así poder utilizar dicho dato con el consiguiente desperdicio de líneas de código y tiempo de funcionamiento.
Muchas gracias por su tiempo.
-
Algunos registros de uso general pueden ser accedidos desde diferentes bancos, pero no creo que una posicion de memoria ram se pueda acceder desde un banco diferente a el.
Desperdicio de lineas? Pues a veces hay que asumirlas... no creo que sea demasiado desperdicio un MOVF direccion W , BCF banco , MOVWF direccion. Son 3-4 ciclos de reloj, que aun asi, dependiendo de la aplicacion, pueden ser cruciales.
No se pueden evitar semejantes embarazosas situaciones, debido a la no-linealidad de la RAM del PIC. A no ser que uses un registro de uso general (como PORTA o TRISA o quien sabe, pero menuda chapuza) , o usar los PIC18, cuya memoria es completamente lineal.
salu2
-
Saludos!!!!... bueno mira los registros especiales del micro a los q puedes acceder desde cualkier banco es porq estos registros estan mapeados en dichos bancos y cada ves q escribes en uno de ellos la informacion es duplicada y pasada todos los bancos donde este registro se encuentre.. lamentablemente esto no lo puedes hacer tu como programador... la solucion q te puedo ofrecer es q si estas en el banco 1 y necesitas acceder a un registro q se encuentra en el banco cero... no tienes q cambierte de banco.... solo ejecutas estas instrucciones a continuacion y listo
; ESTAS EN EL BANCO 1
MOVLW 0FFH
BANKSEL REGISTRO;CAMBIO DE BANCO
MOVWF REGISTRO;REGISTRO ESTA EN BANCO 0
..... ;VUELVE SOLO AL BANCO UNO
......
......
.....
LA INSTRUCCION BANKSEL(SELECCION DE BANCO) TE PERMITE CAMBIARTE AUTOAMTICAMENTE DE BANCO Y SE DIRIGE AL BANCO DONDE SE ENCUANTRA EL REGISTRO Q KIERES ACCESAR NO IMPORTA DONDE ESTES Y NO IMPORTA DONDE ESTE LUEGO DE EJECUTAR LA OPERACION DE LECTURA O ESCRITURA CONTINUAS TRABAJNADO EN EL BANCO EN EL Q ESTABAS!!!.... ESPERO TE AYUDE!!...