TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: kain589 en 18 de Enero de 2006, 16:12:00

Título: Definicion por software de un registro de banderas
Publicado por: kain589 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
Título: RE: Definicion por software de un registro de banderas
Publicado por: antoniof 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
Título: RE: Definicion por software de un registro de banderas
Publicado por: kain589 en 19 de Enero de 2006, 06:56:00
Ok, muchas gracias, suponia que era algo asi por lo que lo asociaba.