TODOPIC

Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: sota_de_bastos en 11 de Octubre de 2007, 05:56:11

Título: definir variables accesibles desde cualquier banco
Publicado por: sota_de_bastos en 11 de Octubre de 2007, 05:56:11
hola,

¿cómo se pueden definir variables (es decir reservar memoria para una variable: "variable equ 0x20") en una region de la memoria que pueda ser accesible desde cualquier banco?

en el codigo relocalizable se utiliza la instruccion "unbanked_shared" pero en codigo absoluto habrá que utilizar direcciones de memoria concretas, si es que se puede claro.

un saludo.  :-/
Título: Re: definir variables accesibles desde cualquier banco
Publicado por: maunix en 11 de Octubre de 2007, 09:15:43
en el codigo relocalizable se utiliza la instruccion "unbanked_shared" pero en codigo absoluto habrá que utilizar direcciones de memoria concretas, si es que se puede claro.


¿Para qué pic?
Título: Re: definir variables accesibles desde cualquier banco
Publicado por: elreypic2 en 11 de Octubre de 2007, 13:58:03
Que tal sota_de_bastos,

Antes que nada bienvenido al foro y aprovechando te invito a que pases al leer las reglas del foro, pero si ya lo hiciste felicidades.

Con respecto a  tu pregunta, es necesario como te indica nuestro companiero forero maunix, que nos digas que micro estas usando para asi poder darte la mejor respuesta.

Te puedo adelantar por ejemplo que los microcontroladores de la serie 16, es decir los PIC16FXXX, tienen un campo de 16 bytes para declarar variables comunes y estas pueds ser accesadas desde cualqueir banco. Este campo de 16 bytes cominza en la direccion 70h de la RAM
asi que no importa desde donde la acceses, asi si tu declaras una variable que se llame VAR y la asignas a la direccion 70h o superior, esta la podras accesar desde cualqueir banco.

Saludos y espero haber ayudado.

Elreypic.
Título: Re: definir variables accesibles desde cualquier banco
Publicado por: maunix en 12 de Octubre de 2007, 07:52:57
Te puedo adelantar por ejemplo que los microcontroladores de la serie 16, es decir los PIC16FXXX, tienen un campo de 16 bytes para declarar variables comunes y estas pueds ser accesadas desde cualqueir banco. Este campo de 16 bytes cominza en la direccion 70h de la RAM

En realidad solo algunnos de la gama de los 16F tienen esa posibilidad y no cualquiera, por eso le pregunté para qué pic.  8)

Saludos
Título: Re: definir variables accesibles desde cualquier banco
Publicado por: sota_de_bastos en 16 de Octubre de 2007, 03:37:00
pues el pic es el 16f873a, y no tiene registros compartidos. Ya lo he preguntado en un foro de microchip y todavía estoy tratando de averiguar qué le pasa al programa que no me compila en codigo relocatable. Voy a ver si me paso a este foro que en español me defiendo mejor que en inglés

un saludo.
Título: Re: definir variables accesibles desde cualquier banco
Publicado por: elreypic2 en 16 de Octubre de 2007, 12:09:50
Que tal sota_de_bastos,

Pues no se entonces que es lo que estas buscando, pero ese microcontrolador, el PIC16F873A, por supuesto qeu tiene registros compartidos y estos comienzan en la direccion 70h de la RAM hasta la direccion 7Fh que son 16 registros que pueen sera accesados desde cualquier pagina. Es decir si tu acesas al registro 70h, es lo mismo que accesaras al registro F0h, al 170h o al 1F0. Esto es lo que se llama registros compartidos, asi que no se entonces que es lo que buscas?

En la pagina 19 del datasheet esta claramente el mapa de memoria donde se muestra esto.

Saludos.

Elreypic.
Título: Re: definir variables accesibles desde cualquier banco
Publicado por: sota_de_bastos en 16 de Octubre de 2007, 13:41:09
pues esto es lo que tengo yo en el la hoja de datos del micro, y no me aparecen los registros compartidos en ningún sitio (hay dos mapas de memoria el correspondiente al pic16f873a es la de abajo)

saludos!
Título: Re: definir variables accesibles desde cualquier banco
Publicado por: LABmouse en 16 de Octubre de 2007, 14:15:34
Y no te puedes pasar a PIC18F?? En esos ya no tienen ese problema de los Bancos ni de Paginas.

SALUDOS!!
Título: Re: definir variables accesibles desde cualquier banco
Publicado por: Chaly29 en 17 de Octubre de 2007, 02:52:34
Hola sota_de_bastos, si bien el 16F873A tiene los bancos 0 y 1 accesibles desde los bancos 2 y 3 respectivamente, no tiene posiciones de RAM accesibles desde todos los bancos como el 16F876 o el 16F877

Un saludo.

Atte. CARLOS.

Título: Re: definir variables accesibles desde cualquier banco
Publicado por: sota_de_bastos en 17 de Octubre de 2007, 14:33:06
ok, gracias, me conformaré con eso (ya que no me puedo cambiar de pic) Tengo otro problemilla con este pic y con el linker script
pero lo voy a poner en otro post ya que es otra cosa

saludos.