{
struct ftdi_context *ftdi;
unsigned char buf[1024];
- int f, i;
+ int f = 0, i;
int vid = 0x403;
int pid = 0;
int baudrate = 115200;
exit(-1);
}
+ /* Set line parameters
+ *
+ * TODO: Make these parameters settable from the command line
+ *
+ * Parameters are chosen that sending a continuous stream of 0x55
+ * should give a square wave
+ *
+ */
+ f = ftdi_set_line_property(ftdi, 8, STOP_BIT_1, NONE);
+ if (f < 0)
+ {
+ fprintf(stderr, "unable to set line parameters: %d (%s)\n", f, ftdi_get_error_string(ftdi));
+ exit(-1);
+ }
+
if (do_write)
for(i=0; i<1024; i++)
buf[i] = pattern;
while (!exitRequested)
{
if (do_write)
- f = ftdi_write_data(ftdi, buf, sizeof(buf));
+ f = ftdi_write_data(ftdi, buf,
+ (baudrate/512 >sizeof(buf))?sizeof(buf):
+ (baudrate/512)?baudrate/512:1);
else
f = ftdi_read_data(ftdi, buf, sizeof(buf));
if (f<0)
- sleep(1);
+ usleep(1 * 1000000);
else if(f> 0 && !do_write)
{
fprintf(stderr, "read %d bytes\n", f);