Gestión Integral para la Seguridad de la Navegación y los Puertos
gestión de puertos
-
Upload
roberto-aulestia -
Category
Documents
-
view
86 -
download
0
Transcript of 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
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.
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
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
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)
6
Compilador C para PIC
GESTION DE PUERTOS: POR DIRECTIVAS
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