From 8b32094cbe45ac66e706fff51bf1a2d6e34559ca Mon Sep 17 00:00:00 2001 From: Ryan Pavlik Date: Thu, 11 Nov 2010 08:16:09 -0600 Subject: [PATCH] Fix calibration/scaling for balance board --- src/wiiboard.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/wiiboard.c b/src/wiiboard.c index 8c24983..f2e4d82 100644 --- a/src/wiiboard.c +++ b/src/wiiboard.c @@ -124,10 +124,13 @@ void wii_board_disconnected(struct wii_board_t* wb) { } static float do_interpolate(uint16_t raw, uint16_t cal[3]) { +#define WIIBOARD_MIDDLE_CALIB 17.0f if (raw < cal[1]) { - return ((raw-cal[0]) * 14.0f)/(float)(cal[1] - cal[0]); + return ((raw-cal[0]) * WIIBOARD_MIDDLE_CALIB)/(float)(cal[1] - cal[0]); } else if (raw > cal[1]) { - return ((raw-cal[1]) * 14.0f)/(float)(cal[2] - cal[1]) + 14.0f; + return ((raw-cal[1]) * WIIBOARD_MIDDLE_CALIB)/(float)(cal[2] - cal[1]) + WIIBOARD_MIDDLE_CALIB; + } else { + return WIIBOARD_MIDDLE_CALIB; } }