X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=examples%2Fbitbang_ft2232.c;h=c99e6878ac08ddeec3b21ffe810bac5776d997dc;hp=cb626649c55761631987583b89194b8dce573c44;hb=05c2e40a3c720c63a75d36a33d0d5de0677f8f57;hpb=08cb09bffd8d69fc16ee9a559efaac3ce922d4d2 diff --git a/examples/bitbang_ft2232.c b/examples/bitbang_ft2232.c index cb62664..c99e687 100644 --- a/examples/bitbang_ft2232.c +++ b/examples/bitbang_ft2232.c @@ -9,69 +9,85 @@ */ #include +#include #include +#ifdef __WIN32__ +#define sleep(x) _sleep(x) +#endif #include int main(int argc, char **argv) { struct ftdi_context ftdic, ftdic2; - char buf[1]; + unsigned char buf[1]; int f,i; // Init 1. channel - ftdi_init(&ftdic); + if (ftdi_init(&ftdic) < 0) + { + fprintf(stderr, "ftdi_init failed\n"); + return EXIT_FAILURE; + } + ftdi_set_interface(&ftdic, INTERFACE_A); f = ftdi_usb_open(&ftdic, 0x0403, 0x6001); - if(f < 0 && f != -5) { + if (f < 0 && f != -5) + { fprintf(stderr, "unable to open ftdi device: %d (%s)\n", f, ftdi_get_error_string(&ftdic)); exit(-1); } printf("ftdi open succeeded(channel 1): %d\n",f); printf("enabling bitbang mode(channel 1)\n"); - ftdi_enable_bitbang(&ftdic, 0xFF); + ftdi_set_bitmode(&ftdic, 0xFF, BITMODE_BITBANG); // Init 2. channel - ftdi_init(&ftdic2); + if (ftdi_init(&ftdic2) < 0) + { + fprintf(stderr, "ftdi_init failed\n"); + return EXIT_FAILURE; + } ftdi_set_interface(&ftdic2, INTERFACE_B); f = ftdi_usb_open(&ftdic2, 0x0403, 0x6001); - if(f < 0 && f != -5) { + if (f < 0 && f != -5) + { fprintf(stderr, "unable to open ftdi device: %d (%s)\n", f, ftdi_get_error_string(&ftdic2)); exit(-1); } printf("ftdi open succeeded(channel 2): %d\n",f); printf("enabling bitbang mode (channel 2)\n"); - ftdi_enable_bitbang(&ftdic2, 0xFF); + ftdi_set_bitmode(&ftdic2, 0xFF, BITMODE_BITBANG); // Write data printf("startloop\n"); - for(i = 0; i < 23; i++) { + for (i = 0; i < 23; i++) + { buf[0] = 0x1; printf("porta: %02i: 0x%02x \n",i,buf[0]); f = ftdi_write_data(&ftdic, buf, 1); - if(f < 0) + if (f < 0) fprintf(stderr,"write failed on channel 1 for 0x%x, error %d (%s)\n", buf[0], f, ftdi_get_error_string(&ftdic)); sleep(1); buf[0] = 0x2; printf("porta: %02i: 0x%02x \n",i,buf[0]); f = ftdi_write_data(&ftdic, buf, 1); - if(f < 0) + if (f < 0) fprintf(stderr,"write failed on channel 1 for 0x%x, error %d (%s)\n", buf[0], f, ftdi_get_error_string(&ftdic)); sleep(1); buf[0] = 0x1; printf("portb: %02i: 0x%02x \n",i,buf[0]); f = ftdi_write_data(&ftdic2, buf, 1); - if(f < 0) + if (f < 0) fprintf(stderr,"write failed on channel 2 for 0x%x, error %d (%s)\n", buf[0], f, ftdi_get_error_string(&ftdic2)); sleep(1); buf[0] = 0x2; printf("portb: %02i: 0x%02x \n",i,buf[0]); f = ftdi_write_data(&ftdic2, buf, 1); - if(f < 0) + if (f < 0) fprintf(stderr,"write failed on channel 2 for 0x%x, error %d (%s)\n", buf[0], f, ftdi_get_error_string(&ftdic2)); sleep(1); } @@ -86,4 +102,6 @@ int main(int argc, char **argv) ftdi_disable_bitbang(&ftdic2); ftdi_usb_close(&ftdic2); ftdi_deinit(&ftdic2); + + return 0; }