Вы находитесь на странице: 1из 2

Acceso a bits individuales

El mikroC PRO para PIC le permite acceder a bits individuales de variables de 8 bits. También es
compatible con los tipos de datos sbit y bit .
Permite usar el Bit de interrupción global (GIE) como ejemplo. Este bit se define en el archivo de
definición de la MCU particular como:

const registro sin firmar corto int GIE = 7;


sbit GIE_bit en INTCON.B7;

Para acceder a este bit en su código por su nombre, puede escribir algo como esto:

// Borrar el bit de interrupción global (GIE)


INTCON.GIE = 0;

De esta manera, si el bit GIE cambia su posición en el registro, está seguro de que el bit apropiado se
verá afectado. 
Pero, si el bit GIE no se encuentra en el registro designado, puede obtener errores.
Otra forma de acceder a los bits es utilizando el selector de miembro directo ( . ) Con una variable,
seguido de uno de los identificadores B0 , B1 , ..., B7 o F0 , F1 , ... F7 , siendo F7 el bit más significativo,
para acceder el bit deseado:

// Globos predefinidos como designadores de bits


// Borrar bit 0 en registro INTCON
INTCON.B0 = 0;

// Establecer bit 0 en registro INTCON


INTCON.F0 = 1;

De esta manera, si el bit de destino cambia su posición en el registro, no puede estar seguro de que está
invocando el bit apropiado.
Este tipo de acceso selectivo es una característica intrínseca de mikroC PRO para PIC y se puede utilizar
en cualquier parte del código. Los identificadores B0 - B7 no distinguen entre mayúsculas y minúsculas y
tienen un espacio de nombres específico.
Puede anularlos con sus propios miembros B0 - B7 dentro de cualquier estructura dada.
Cuando use constantes literales como designadores de bits en lugar de predefinidos, asegúrese de no
exceder el tamaño de tipo apropiado.
Además, puede acceder al bit deseado utilizando su nombre de alias, en este caso GIE_bit :

// Establecer bit de interrupción global (GIE)


GIE_bit = 1;

De esta manera, si el bit GIE cambia su registro o posición en el registro, está seguro de que el bit
apropiado se verá afectado.

 Nota: si apunta a la portabilidad, evite este estilo de acceso a bits individuales, use los campos de
bits en su lugar.
Consulte Globos y constantes predefinidos para obtener más información sobre los nombres de registro /
bit.
tipo sbit
El compilador sbit PRO for PIC tiene sbit tipo de datos sbit que proporciona acceso a registros, SFR,
variables, etc. 
Puede declarar una variable sbit en una unidad de tal manera que apunte a un bit específico en el
registro SFR:

extern sfr sbit Abit; // Abit se define con precisión en algún archivo externo, por ejemplo,
en la unidad de programa principal

En el programa principal, debe especificar a qué registro apunta este bit de bit, por ejemplo:

sbit Abit en PORTB.B0; // aquí es donde Abit está completamente definido


...
void main () {
...
}

De esta manera, la variable Abit apuntará a PORTB.0. Tenga en cuenta que usamos la palabra


clave sfr para la declaración de Abit , porque la estamos apuntando a PORTB, que se define como una
variable sfr .

 Nota: no es posible declarar una variable sbit través de los identificadores F0 , F1 , ... F15 .

En caso de que queramos declarar un poco sobre una variable que no está definida como sfr , entonces la
palabra clave sfr no es necesaria, por ejemplo:

extern sbit AnotherBit; // AnotherBit se define con precisión en algún archivo externo, por
ejemplo, en la unidad de programa principal
char MyVar;
sbit AnotherBit en MyVar.B0; // aquí es donde AnotherBit está completamente definido
...
void main () {
...
}

en palabra clave
Puede usar la palabra clave "at" para hacer un alias a una variable, por ejemplo, puede escribir una
biblioteca sin usar nombres de registro, y más adelante en el programa principal para definir esos
registros, por ejemplo:

extern char PORTAlias; // Aquí en la biblioteca podemos usar su nombre simbólico.


char PORTAlias en el PORTB; // aquí es donde PORTAlias está completamente definido
...
void main () {
...
}

 Nota: Tenga en cuenta que cuando use el operador at en su código sobre una variable definida a
través de un modificador extern , también se debe agregar el especificador de memoria correspondiente.
tipo de bit
El compilador mikroC PRO for PIC proporciona un tipo de datos de bit que se puede usar para
declaraciones de variables. No se puede utilizar para listas de argumentos y valores de retorno de función.

bit bf; // variable de bit

No hay punteros a las variables de bits:

bit * ptr; // invalido

Una matriz de tipo bit no es válida:

bit arr [5]; // invalido

 Nota :
 Las variables de bit no se pueden inicializar.
 Las variables de bit no pueden ser miembros de estructuras y uniones.
 Las variables de bit no tienen direcciones, por lo tanto, el operador unario & (dirección de) no
es aplicable a estas variables.

Вам также может понравиться