From c23437d9a7c4ef0814d4cf016bba951572a56f87 Mon Sep 17 00:00:00 2001 From: Yury Vostrenkov Date: Fri, 10 Jan 2020 15:51:14 +0300 Subject: [PATCH] Fixed upper and lower calibration limits --- MDK-ARM/FreeJoy.uvoptx | 5 +++++ MDK-ARM/FreeJoy_v1_01b2.zip | Bin 42016 -> 0 bytes Src/analog.c | 8 ++++---- 3 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 MDK-ARM/FreeJoy_v1_01b2.zip diff --git a/MDK-ARM/FreeJoy.uvoptx b/MDK-ARM/FreeJoy.uvoptx index 028f3cd..a717247 100644 --- a/MDK-ARM/FreeJoy.uvoptx +++ b/MDK-ARM/FreeJoy.uvoptx @@ -205,6 +205,11 @@ 1 USBD_SERIALNUMBER_STRING_FS + + 11 + 1 + tmp16,0x0A + diff --git a/MDK-ARM/FreeJoy_v1_01b2.zip b/MDK-ARM/FreeJoy_v1_01b2.zip deleted file mode 100644 index c3838d606ba452a7540e092d3d6f2ba04799b08b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42016 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 in_max) return in_max; + if (tmp8 < in_min) return out_min; + if (tmp8 > in_max) return out_max; ret = (tmp8 - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; @@ -65,8 +65,8 @@ static uint32_t map3( uint32_t x, tmp8 = x; - if (tmp8 < in_min) return in_min; - if (tmp8 > in_max) return in_max; + if (tmp8 < in_min) return out_min; + if (tmp8 > in_max) return out_max; if (tmp8 < in_center) {