*/
#include <stdio.h>
+#include <stdlib.h>
#include <unistd.h>
+#ifdef __WIN32__
+#define sleep(x) _sleep(x)
+#endif
#include <ftdi.h>
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)
{
fprintf(stderr, "unable to open ftdi device: %d (%s)\n", f, ftdi_get_error_string(&ftdic));
+ ftdi_deinit(&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)
{
fprintf(stderr, "unable to open ftdi device: %d (%s)\n", f, ftdi_get_error_string(&ftdic2));
+ ftdi_deinit(&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");
ftdi_disable_bitbang(&ftdic2);
ftdi_usb_close(&ftdic2);
ftdi_deinit(&ftdic2);
+
+ return 0;
}