gestión de puertos

7
1 Compilador C para PIC GESTION DE PUERTOS: A TRAVÉS DE LAS DIRECTIVAS OPCIÓN 2. Usando funciones integradas del compilador . El compilador de CCS ofrece funciones predefinidas para trabajar con los puertos E/S. output_X (valor); //Por el puerto correspondiente se saca // el valor (0-255). input_X(); //Se obtiene el valor en el puerto correspondiente. set_tris_X(valor); //Carga el registro TRISx con el valor (0-255). port_b_pullups (valor); //Mediante valor=TRUE o valor=FALSE habilita o //deshabilita las resistencias de pull-up en PORTB. get_trisX(valor); //Devuelve el valor del registro TRISx Output_A(0xFF); //Saca por el puerto A el valor 1111 Valor=Input_B(); //Lee el valor del puerto B Set_tris_C(0x0F); //Configura el puerto C: C0-C3 entradas, C4-C7 salidas

Transcript of gestión de puertos

Page 1: gestión de puertos

1

Compilador C para PIC

GESTION DE PUERTOS: A TRAVÉS DE LAS DIRECTIVAS • OPCIÓN 2. Usando funciones integradas del compilador.

– El compilador de CCS ofrece funciones predefinidas para trabajar con los puertos E/S.

output_X (valor); //Por el puerto correspondiente se saca // el valor (0-255). input_X(); //Se obtiene el valor en el puerto correspondiente. set_tris_X(valor); //Carga el registro TRISx con el valor (0-255). port_b_pullups (valor); //Mediante valor=TRUE o valor=FALSE habilita o //deshabilita las resistencias de pull-up en PORTB. get_trisX(valor); //Devuelve el valor del registro TRISx

Output_A(0xFF); //Saca por el puerto A el valor 1111 Valor=Input_B(); //Lee el valor del puerto B Set_tris_C(0x0F); //Configura el puerto C: C0-C3 entradas, C4-C7 salidas

Page 2: gestión de puertos

2

Compilador C para PIC

GESTION DE PUERTOS: POR DIRECTIVAS

Existe una serie de funciones asociadas a un terminal o pin*. El parámetro pin* se define en un fichero include (por ejemplo, 16F876.h) con un formato del tipo PIN_Xn, donde X es el puerto y n es el número de pin.

#define PIN_A0 40 #define PIN_A1 41 Las funciones son: output_low (pin*); //Pin a 0. output_high (pin*); //Pin a 1. output_bit (pin* , valor); //Pin al valor especificado. output_toggle(pin*); //Complementa el valor del pin. output_float (pin*); //Pin de entrada, quedando a tensión flotante input_state(pin*); //lee el valor del pin sin cambiar su sentido input(pin*); // lee el valor del pin.

Page 3: gestión de puertos

3

Compilador C para PIC

GESTION DE PUERTOS: POR DIRECTIVAS – La las funciones output_x( ) e input_x( ) dependen de la última directiva del tipo #USE

*_IO que esté activa.

#USE FAST_IO (PUERTO) [PUERTO: A…] – Con la función output...() se saca el valor directamente al puerto, y con la función

input...() se lee el puerto. La directiva no modifican previamente el registro TRIS correspondiente.

– El usuario debe asegurarse de que los registros TRIS están cargados adecuadamente antes de llamar a las funciones.

Ej. #USE FAST_IO (B)

http://www.disfrutalasmatematicas.com/numeros/binario-decimal-hexadecimal-conversor.html

Page 4: gestión de puertos

GESTION DE PUERTOS: A TRAVÉS DE LAS DIRECTIVAS

#USE STANDARD_IO (PUERTO) [PUERTO: A…] Con la función output...() el compilador forza a que el bit particular o el puerto completo sean de salida (mediante la carga del TRIS correspondiente). Con la función función input...() ocurre los mismo pero asegurando el terminal como entrada.

Ésta es la directiva activa por defecto. No se necesita configurar TRISx.

Ej. #USE STANDARD_IO (C)

4

Page 5: gestión de puertos

5

Compilador C para PIC

GESTION DE PUERTOS: POR DIRECTIVAS

#USE FIXED_IO (PUERTO_OUTPUTS=pin* , ...) [PUERTO: A…] – El compilador se encarga de generar el código para definir los puertos de

acuerdo con la información que indica la directiva (donde sólo se indican los terminales de salida), sin tener en cuenta si la operación es de entrada o de salida.

Ej. USE FIXED_IO (B_OUTPUTS = PIN_B2 , PIN_B3)

Page 6: gestión de puertos

6

Compilador C para PIC

GESTION DE PUERTOS: POR DIRECTIVAS

Page 7: gestión de puertos

En general se puede decir que resulta más cómodo gestionar los pines de E/S de modo STANDARD, pero haciéndolo de modo FAST se adquiere más control de lo que se le está mandando al PIC y se optimiza código.

7