/*****************************************************************************/ /* sci-sensor.c Junio-2005 */ /*---------------------------------------------------------------------------*/ /* Ejemplo para el skybot */ /*---------------------------------------------------------------------------*/ /* Leer el estado de un sensor (se puede definir cual) y enviar su estado */ /* por el puerto serie. Si lee negro se manda una 'N', si es blanco una 'B' */ /* Para ver su funcionamiento es necesario ejecutar un terminal de */ /* comunicaciones */ /*---------------------------------------------------------------------------*/ /* Andres Prieto-Moreno <andres@ifara.com> */ /* Juan Gonzalez <juan@iearobotics.com> */ /* Modificado por: Javier Valiente <jvaliente@ifara.com> */ /*---------------------------------------------------------------------------*/ /* LICENCIA GPL */ /*****************************************************************************/ //-- Especificar el pic a emplear #include <pic16f876a.h> #include "sci.h" //-- Definiciones de los sensores #define SENSOR1 0x01 #define SENSOR2 0x20 #define SENSOR3 0x40 #define SENSOR4 0x80 //-- Indicar el sensor a comprobar. Esto se puede cambiar #define SENSOR SENSOR4 //---------------------------- //- Comienzo del programa //---------------------------- void main(void) { //-- Configurar el puerto B para trabajar con el Skybot //-- RB0, RB5, RB6 y RB7 como entradas //-- RB1, RB2, RB3 y RB4 como salidas TRISB=0xE1; //-- Los motores del Skybot parados PORTB=0x00; //-- Configurar las comunicaciones serie sci_conf(); //-- Bucle principal while(1) { //-- Sensor lee blanco? if ((PORTB & SENSOR)==0) { sci_write('B'); //-- Si, mandar la B } else { sci_write('\N'); //-- No, manda la N } //-- Enviar un caracter de retroceso sci_write('\b'); } }