Módulo IO y manipulación de pines Muestra las funciones para poder trabajar con los pines del PIC. #include <pinio.h> output_high_slow Establece un PIN a un estado alto de voltaje. Verifica el estado del tris. void output_high_slow( BYTE puerto, BYTE pin); ejemplo: output_high_slow(PIN_B0); output_high_fast Establece un PIN a un estado alto de voltaje. No verifica el estado del tris. void output_high_fast( BYTE puerto, BYTE pin); ejemplo: output_high_fast(PIN_B0); output_high Establece un PIN a un estado alto de voltaje. La verificación del estado del tris depende de habilitar el macro SLOW_IO como TRUE o FALSE. Por defecto, si no se escribe #define SLOW_IO TRUE , SLOW_IO tiene el valor de TRUE. #define SLOW_IO TRUE void output_high( BYTE puerto, BYTE pin); ejemplo: output_high(PIN_B0); output_low_slow Establece un PIN a un estado bajo de voltaje. Verifica el estado del tris. void output_low_slow( BYTE puerto, BYTE pin); ejemplo: output_low_slow(PIN_B0); output_low_fast Establece un PIN a un estado bajo de voltaje. No verifica el estado del tris. void output_low_fast( BYTE puerto, BYTE pin); ejemplo: output_low_fast(PIN_B0); output_low Establece un PIN a un estado bajo de voltaje. La verificación del estado del tris depende de habilitar el macro SLOW_IO como TRUE o FALSE. Por defecto, si no se escribe #define SLOW_IO TRUE , SLOW_IO tiene el valor de TRUE. #define SLOW_IO TRUE void output_low( BYTE puerto, BYTE pin); ejemplo: output_low(PIN_B0); input_slow Devuelve el estado de un pin. puede ser 1 o 0. Verifica el estado del tris. BYTE input_slow( BYTE puerto, BYTE pin); ejemplo: input_slow(PIN_B1); input_fast Devuelve el estado de un pin. puede ser 1 o 0. No verifica el estado del tris. BYTE input_fast( BYTE puerto, BYTE pin); ejemplo: input_fast(PIN_B1); input Devuelve el estado de un pin. puede ser 1 o 0. La verificación del estado del tris depende de habilitar el macro SLOW_IO como TRUE o FALSE. Por defecto, si no se escribe #define SLOW_IO TRUE , SLOW_IO tiene el valor de TRUE. #define SLOW_IO TRUE BYTE input( BYTE puerto, BYTE pin); ejemplo: input(PIN_B1); set_pin_to_slow Establece el estado de un pin a 1 o 0. Verifica el estado del tris. void set_pin_to_slow( BYTE puerto, BYTE pin, BYTE X); ejemplo: set_pin_to_slow(PIN_C1,1);//el pin C1 ahora tiene un estado alto set_pin_to_slow(PIN_C1,0);//el pin C1 ahora tiene un estado bajo set_pin_to_fast Establece el estado de un pin a 1 o 0. No verifica el estado del tris. void set_pin_to_fast( BYTE puerto, BYTE pin, BYTE X); ejemplo: set_pin_to_fast(PIN_C1,1);//el pin C1 ahora tiene un estado alto set_pin_to_fast(PIN_C1,0);//el pin C1 ahora tiene un estado bajo set_pin_to Establece el estado de un pin a 1 o 0. La verificación del estado del tris depende de habilitar el macro SLOW_IO como TRUE o FALSE. Por defecto, si no se escribe #define SLOW_IO TRUE , SLOW_IO tiene el valor de TRUE. #define SLOW_IO TRUE void set_pin_to( BYTE puerto, BYTE pin, BYTE X); ejemplo: set_pin_to(PIN_C1,1);//el pin C1 ahora tiene un estado alto set_pin_to(PIN_C1,0);//el pin C1 ahora tiene un estado bajo set_pin_tris_to Establece el TRIS de un pin a 1 o 0. void set_pin_tris_to( BYTE puerto, BYTE pin, BYTE X); ejemplo: set_pin_tris_to(PIN_C1,1);//el TRIS C1 ahora tiene un estado alto set_pin_tris_to(PIN_C1,0);//el TRIS C1 ahora tiene un estado bajo set_porta_as_digital Establece el puerto A como DIGITAL. #define set_porta_as_digital() ADCON1=0x06 ejemplo: set_porta_as_digital(); set_pullup_portb Habilita o deshabilita las resistencias de pull-up del puerto B. Para habilitar las resistencias de pull-up X= 1 o TRUE. Para deshabilitar las resistencias de pull-up X= 0 o FALSE. void set_pullup_portb(BYTE X); Ejemplo de PinIO Para compilar necesitas los siguientes comandos. Ejemplo de compilacion : ./compila.sh ej_pinio 16f877a ej_pinio.c #include <pic/p16f877a.h> #define FOSC_HZ 20000000 #include <pinio.h> #include <delayms.h> int main (void) { delayms(100); while(TRUE) { delayms(50); output_high(PIN_C2); delayms(50); output_low(PIN_C2); if(input(PIN_A4)==1) output_high(PIN_B7); else output_low (PIN_B7); } return 0; }