Autor Tema: Asignacion de etiquetas a bits de un registro, en un fichero de cabecera.  (Leído 1321 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gpgerman

  • PIC10
  • *
  • Mensajes: 1
Hola a todos.

La duda que tengo es que al abrir un fichero de cabecera, p.ej. P16F84.inc, se observa como se asigna cada etiqueta a la direccion de memoria correspondiente al registro deseado, hasta aqui todo esta claro.
Mi duda es que cuando se asignan etiquetas a los bits que componen cada registro, no se especifica a que registro hacen referencia, por esto no entiendo como puede diferenciar el micro a que registro corresponde cada bit.
¿Que diferencia habria para el micro entre RP0 y T0IE si los definimos como hace el fabricante en el siguiente fragmento?

;----- STATUS Bits -------------------------------

IRP                           EQU     H"0007"
RP1                          EQU     H"0006"
RP0                          EQU     H"0005"
............
C                             EQU     H"0000"

;----- INTCON Bits -------------------------------

GIE                           EQU     H"0007"
EEIE                         EQU     H"0006"
T0IE                         EQU     H"0005"
.............
RBIF                         EQU     H"0000"


Por otro lado, suponiendo que el micro no lo diferencia y que con uno podriamos hacer lo mismo que con el otro, es decir que puedes actuar sobre RP0 con TOIE y viceversa. La pregunta seria y como sabe el micro que te refieres a PR0 y no al registro PORTA que tambien es H"0005".

;----- Register Files------------------------------

INDF                         EQU     H"0000"
....................
PORTA                        EQU     H"0005"
PORTB                        EQU     H"0006"


Saludos.

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Asignacion de etiquetas a bits de un registro, en un fichero de cabecera.
« Respuesta #1 en: 10 de Febrero de 2005, 10:46:00 »
Como bien dices,el compilador no sabe discernir si se hace referencia a un bit que corresponde a un registro u otro.Por esto,las instrucciones orientadas a bit llevan como operando el registro contenedor del bit sobre el que se actúa y también dicho bit:

BSF       INTCON,GIE
BTFSC   STATUS,Z
BCF       STATUS,4
etc....

Desconectado Micom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 782
RE: Asignacion de etiquetas a bits de un registro, en un fichero de cabecera.
« Respuesta #2 en: 12 de Febrero de 2005, 20:58:00 »
Como dice Modulay el compilador no tiene forma de saber si creaste un registro o asignaste un bite ya que llevan el mismo numero pero cuando accedes a a leer o a asignar a un registro un valor determinado eres tu el que deve de tener cuidado en saber a que se refiere cada asignacion. por ejemplo:

T0IE EQU H"0005" ; aqui se esta asignando a T0IE el numero 0X05 pero se refiere
............................; al bite numero 6 del registro INTCON que esta en el banco 1
............................; y tiene la direccion 0X0B.

PORTA EQU H"0005" ; aqui se refiere a una direccion de registro que aunque
................................; lleven el mismo numero no se refieren a lo mismo pero eso
................................; tu lo tienes que controlar ya que para escribir o leer en el
................................;registro H"0005" puedes tambien hacerlo sobre el T0IE pero
................................; el compilador te estaria dando error si usaste esta
................................; etiqueta en el mismo programa asignandole un bite
................................( BCF      INTCON,T0IE) .

Asi que espero haberte aclarado un poco las cosas y si persdiste el problema comentalo. Hasta pronto
El programador GTP USB PLUS es un super programador
GRACIAS dobles amigo SISPIC

Tan solo queda seguir sobreviviendo