diff --git a/pc/calibrate.c b/pc/calibrate.c index b5aeddd..170ee36 100644 --- a/pc/calibrate.c +++ b/pc/calibrate.c @@ -81,7 +81,7 @@ int main(int argc, char *argv[]) void calibrate(int zoom, int gpib) { - float idesired, iactual; + double idesired, iactual; int i; int zero; int r = 0; @@ -111,10 +111,10 @@ void calibrate(int zoom, int gpib) info("Zeroing\n"); if (zoom_zero_start(zoom) < 0) goto fail; - info("Setting current: %f\n", idesired); + info("Setting current: %.8f\n", idesired); keithley_current(gpib, idesired); iactual = keithley_read(gpib); - info("Actual current: %f\n", iactual); + info("Actual current: %.8f\n", iactual); info("Stop zeroing\n"); if ((zero = zoom_zero_stop(zoom)) < 0) goto fail; @@ -125,7 +125,7 @@ void calibrate(int zoom, int gpib) info("Results:\n"); for (i = 0; i < ZOOM_SWEEP_COUNT; i++) { - printf("%8f %d %d\n", iactual, dac[i], adc[i]); + printf("%.8f %d %d\n", iactual, dac[i], adc[i]); } } diff --git a/pc/gpib.c b/pc/gpib.c index 340d853..4ae3f2b 100644 --- a/pc/gpib.c +++ b/pc/gpib.c @@ -33,7 +33,7 @@ int gpib_addr(int fd, int addr) int keithley_init(int fd) { - float i; + double i; gput(":syst:beep:stat 1"); gput(":sour:func:mode curr"); gput(":sour:del 0"); @@ -47,7 +47,7 @@ int keithley_init(int fd) return 0; } -int keithley_current(int fd, float amps) +int keithley_current(int fd, double amps) { char s[128]; sprintf(s, ":sour:curr %0.3f", amps); @@ -55,15 +55,16 @@ int keithley_current(int fd, float amps) return 0; } -float keithley_read(int fd) +double keithley_read(int fd) { char s[128]; - float i, dummy; + double i, dummy; gputv("read?", NAN); gputv("++read", NAN); if (fdgets(s, 128, fd, 2000) == NULL) return NAN; - if (sscanf(s, "%f,%f,", &dummy, &i) != 2) + printf("%s\n", s); + if (sscanf(s, "%lf,%lf,", &dummy, &i) != 2) return NAN; return i; } diff --git a/pc/gpib.h b/pc/gpib.h index 4155f9c..e387c9b 100644 --- a/pc/gpib.h +++ b/pc/gpib.h @@ -5,8 +5,8 @@ int gpib_init(int fd); int gpib_addr(int fd, int addr); int keithley_init(int fd); -int keithley_current(int fd, float amps); -float keithley_read(int fd); +int keithley_current(int fd, double amps); +double keithley_read(int fd); int keithley_off(int fd); #endif