Project

General

Profile

Statistics
| Revision:

root / trunk / code / projects / colonet / testing / ftdi_test / ftdi_test.c @ 13

History | View | Annotate | Download (1.36 KB)

1
/* ftdi test
2
 * Simple program to test the ftdi drivers with the dongle
3
 */
4

    
5
#include <stdio.h>
6
#include <unistd.h>
7
#include <usb.h>
8
#include <ftdi.h>
9

    
10
int main(int argc, char **argv)
11
{
12
  struct ftdi_context ftdic;
13
  int f,i;
14

    
15
  ftdi_init(&ftdic);
16

    
17
  f = ftdi_usb_open(&ftdic, 0x0403, 0x6001); 
18

    
19
  if(f < 0 && f != -5) {
20
    fprintf(stderr, "unable to open ftdi device: %d\n",f);
21
    exit(-1);
22
  }
23

    
24
  printf("ftdi open succeeded: %d\n",f);
25

    
26
  printf("enabling bitbang mode\n");
27
  ftdi_enable_bitbang(&ftdic, 0xFF);
28

    
29
  char buf[1];
30

    
31
  sleep(3);
32

    
33
  buf[0] = 0x0;
34
  printf("turning everything on\n");
35
  f = ftdi_write_data(&ftdic, buf, 1);
36
  if(f < 0) {
37
    fprintf(stderr,"write failed for 0x%x, error %d\n",buf[0],f);
38
  }
39

    
40
  sleep(3);
41

    
42
  buf[0] = 0xFF;
43
  printf("turning everything off\n");
44
  f = ftdi_write_data(&ftdic, buf, 1);
45
  if(f < 0) {
46
    fprintf(stderr,"write failed for 0x%x, error %d\n",buf[0],f);
47
  }
48

    
49
  sleep(3);
50

    
51
  for(i = 0; i < 32; i++) {
52
    buf[0] =  0 | (0xFF ^ 1 << (i % 8));
53
    if( i > 0 && (i % 8) == 0) {
54
      printf("\n");
55
    }
56
    printf("%02hhx ",buf[0]);
57
    fflush(stdout);
58
    f = ftdi_write_data(&ftdic, buf, 1);
59
    if(f < 0) {
60
      fprintf(stderr,"write failed for 0x%x, error %d\n",buf[0],f);
61
    }
62
    sleep(1);
63
  }
64

    
65
  printf("\n");
66
  
67
  printf("disabling bitbang mode\n");
68
  ftdi_disable_bitbang(&ftdic);
69

    
70
  ftdi_usb_close(&ftdic);
71
  ftdi_deinit(&ftdic);
72
}