Autor Tema: Definicion por software de un registro de banderas  (Leído 2126 veces)

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

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Definicion por software de un registro de banderas
« en: 18 de Enero de 2006, 16:12:00 »
Pues mirando algunas notas de aplicacion vi como asignaba un registro como registro compuesto por señalizadores, siendo estos señalizadores gestionados por software; por ejemplo, si ha pasado tal cosa pon a uno un bit para que me informe y me parece muy util de cara a la gestion del programa. El codigo es algo asi:

Codigo:
;Bit Definitions

TxBufFull   EQU   0      ;bit indicates Tx buffer is full
TxBufEmpty   EQU   1   ;bit indicates Tx buffer is empty
RxBufFull   EQU   2      ;bit indicates Rx buffer is full
RxBufEmpty   EQU   3   ;bit indicates Rx buffer is empty
ReceivedCR   EQU   4   ;bit indicates <CR> character received
;Variables
CBLOCK   0x20
...
Flags                            ;byte to store indicator flags
...
ENDC
;uso en el programa
....
bsf   Flags,ReceivedCR ;indicate <CR> character received
....



Mi pregunta es como sabe el compliador que los bits definidos pertenecen al registro llamado flags, supongo que sera al escribirlo la primera vez que ya siempre lo asocia o algo asi, ¿alguien sabe como funciona esto?. De antemano muchas gracias
Saludos desde Córdoba, españa

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: Definicion por software de un registro de banderas
« Respuesta #1 en: 18 de Enero de 2006, 17:38:00 »
Buenas.

El compilador sabe que es el registro Flags porque tu mismo se lo estas diciendo.

Cuando pones "bsf  Flags, ReceivedCR" estas diciendo, pon a uno el bit 4 (ReceivedCR) del registro (Flags)

La direccion del registro Flags depende de la directiva CBLOCK.

Cuando se escribe

CBLOCK 0x20
registro1 -- -> Este tiene la dirección 0x20
registro2 -- -> Este tiene la dirección 0x21
registro3 -- -> Este tiene la dirección 0x22
Flags -- -> Este tiene la dirección 0x23
registro4 -- -> Este tiene la dirección 0x24
registro5 -- -> Este tiene la dirección 0x25
ENDC

A cada registro se corresponde una dirección, contadas a partir de la 0x20, que es el parámetro del CBLOCK

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
RE: Definicion por software de un registro de banderas
« Respuesta #2 en: 19 de Enero de 2006, 06:56:00 »
Ok, muchas gracias, suponia que era algo asi por lo que lo asociaba.
Saludos desde Córdoba, españa