Posiciones de memoria y abreviaturas

#1
Hola de nuevo, vereis tengo una gran duda :(

Ya llevo una semana con el pic 16f84, estoy mirando algunos ejemplos del kit que me compre, uno de velleman, el VM111

El problema que tengo es que, tengo un monton de ejemplos de programas, pero por lo visto, todas las abreviaturas que se usan como TRISA, PORTB etc, van asociadas a direcciones de memoria del pic, hasta alli todo de fabula, el problema que tengo es que:

vienen abreviaturas de este tipo con la misma direccion de memoria, cosa que no entiendo.

en mis ejemplos, hay variables de estas, como por ejemplo binario, buffer_L, buffer_H, las cuales viene asociadas con posiciones de memoria indicadas asi: 0x13, lo cual traducido a hechadecimal seria H'000D', y otra vez lo mismo, vuelvo a encontrarme una abreviatura que ya tiene esa posicion.

alguien sabe explicarme que hago mal? :(

es que estoy empezando con esto y es un poco cacao :)
 
#2
omfreg dijo:
Hola de nuevo, vereis tengo una gran duda :(
en mis ejemplos, hay variables de estas, como por ejemplo binario, buffer_L, buffer_H, las cuales viene asociadas con posiciones de memoria indicadas asi: 0x13, lo cual traducido a hechadecimal seria H'000D', y otra vez lo mismo, vuelvo a encontrarme una abreviatura que ya tiene esa posicion.
No se que es lo que quieres hacer pero te aclaro lo siguiente

el simbolo 0x indica que el número a continuación es en hexa.

Por lo tanto

0x13 = 13h = H'0013' o como quieras .

Tu te confundes 13d = .13 = H'000D' = 0x0D

Saludos
 
#3
Ten encuenta que no siempre son posiciones de memoria sino constante, y ademas hay que mirarse un poco la estructura del micro controlador, y verás que trabaja con páginas con lo cual puedes estar utilizar la posicion 0x0D de la página 1 y 0x0D de la página 0, como curiosidad el TRISB y el PORTB están en la misma dirección de memoria pero en distintas páginas, por eso si trabajas en ensamblador tienes que tener cuidado con ellos. seguramente antes de cargar un dato en el TRIS o en e PORT hará un cambio de página
 
#4
En el directorio raíz del MPLAB, encontrarás un archivo relacionado con el PIC específico que estés utilizando. Tiene extensión .inc Ábrelo y encontrarás las direcciones y asignaciones que se hace de todos los registros de ese micro en particular. Del mismo modo los bits de algunos registros de control están codificados.
Es probable que coincidan para dos o mas de ellos (en el caso de los bits), pero su uso depende del entorno mismo del programa en el momento que los llames.
Por otro lado puedes tener por ejemplo un registro cualquiera en la dirección 0x05 y tener definida una constante que valga 0x05, y no se interferirán nunca.