diff -r 3345048104fc -r fc24e3b47731 me8100_test_dio/wtest.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/me8100_test_dio/wtest.c Wed Jan 16 15:54:58 2002 +0100 @@ -0,0 +1,69 @@ +/* + * Source File : me8100_test_dio.c + * Destination : me8100_test_dio + * Author : GG (Guenter Gebhardt) + * + * + * File History: Version Date Editor Action + *--------------------------------------------------------------------- + * 1.00.00 01.07.12 GG first release + * + *--------------------------------------------------------------------- + * + * Description: + * This program shows the use of the driver and the digital inputs + * and outputs. First the outputs are tested in sink and source mode. + * Then the inputs are tested. + */ +#include +#include +#include +#include +#include + +#include "me8100.h" + +int main(void){ + int err = 0; + static int file_handle = -1; + + unsigned short ctrl_a; + unsigned short value_a; + + printf("Write test, PID: %d\n", getpid()); + file_handle = open("/dev/me8100_0", O_RDWR, 0); + + if(file_handle < 0){ + printf("Cannot open path !\n"); + return 1; + } + + /* Write. + * HACK: The driver itself should remember the status + * of the IRQ bits in its control register + */ + ctrl_a = ME8100_CTL_ENIO | ME8100_CTL_SOURCE | ME8100_CTL_IRQ_MASK; + err = ioctl(file_handle, ME8100_WRITE_CTRL_A, &ctrl_a); + if (err) { + fprintf(stderr, "Can't setup output to port A\n"); + return 1; + } + + value_a = 0x00; + for (value_a = 0x00; value_a < 0xffff; ++value_a) { + ioctl(file_handle, ME8100_WRITE_DO_A, &value_a); + printf("Wrote %04x\n", value_a); + sleep(3); + } + + err = close(file_handle); + if(err){ + printf("Kann Pfad nicht schliessen\n"); + return 1; + } + + return 0; +} +/* + vim:sts=2 sw=2 aw ai sm: +*/