/* provacomedi.c Programa sencillo para probar COMEDI con el puerto paralelo del PC Angel perles. Abril de 2009. Conectar un tester a los pines 2 y 20(GND) del puerto paralelo. */ #include #include #include /* incluir cabecera de comedi */ const char *filename = "/dev/comedi0"; /* dispositivo que se usara */ /* macros para simplificar la comprobación de errores */ #define test_comedi_error(A) micomedi_testerror(A, __FILE__, __LINE__) void micomedi_testerror(int ret_val, char *file, int line); /* programa principal *******************************************************/ int main(int argc, char *argv[]) { int subdevice; int channel; int ret; comedi_t *device; int i; subdevice = 0; /* subdevice elegido */ channel = 0; /* channel elegido */ device = comedi_open(filename); if (!device) { comedi_perror(filename); /* fallo abriendo el dispositvo */ exit(0); } /* configurar todas los canales como salida */ for (i=0;i<8;i++) { ret = comedi_dio_config(device,subdevice,i,COMEDI_OUTPUT); test_comedi_error(ret); } /* continuamente invertir el canal seleccionado */ while(1) { /* poner la linea a "1" */ ret = comedi_dio_write(device,subdevice,0,1); test_comedi_error(ret); printf("Pongo la linea a 1\n"); sleep(2); /* poner la linea a "0" */ ret = comedi_dio_write(device,subdevice,0,0); test_comedi_error(ret); printf("Pongo la linea a 0\n"); sleep(2); } /* del while() */ } /* comprobación de errores **************************************************/ void micomedi_testerror(int ret_val, char *file, int line) { char cadena[100]; if (ret_val < 0) {/* algo ha fallado */ sprintf(cadena,"%s(%d)",file,line); comedi_perror(cadena); exit(-1); } } /***************************** FIN LISTADO ***********************************/