From ec645a7433253e1bf3f5e86dd54cdd60c5a588d1 Mon Sep 17 00:00:00 2001 From: Yury Vostrenkov Date: Tue, 25 Feb 2020 21:40:38 +0300 Subject: [PATCH] fixed buttons report data processing --- Inc/common_defines.h | 2 +- Inc/main.h | 2 +- MDK-ARM/FreeJoy.bin | Bin 22392 -> 22372 bytes Src/analog.c | 6 +++--- Src/buttons.c | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Inc/common_defines.h b/Inc/common_defines.h index 25ee613..76429ce 100644 --- a/Inc/common_defines.h +++ b/Inc/common_defines.h @@ -11,7 +11,7 @@ //#define DEBUG -#define FIRMWARE_VERSION 0x1342 // v1.3.4b2 +#define FIRMWARE_VERSION 0x1343 // v1.3.4b3 #define USED_PINS_NUM 30 // constant for BluePill and BlackPill boards #define MAX_AXIS_NUM 8 // max 8 #define MAX_BUTTONS_NUM 128 // power of 2, max 128 diff --git a/Inc/main.h b/Inc/main.h index 69287cf..a6ee54f 100644 --- a/Inc/main.h +++ b/Inc/main.h @@ -18,7 +18,7 @@ static const dev_config_t init_config = { - .firmware_version = 0x1342, // do not change + .firmware_version = 0x1343, // do not change /* Name of device in devices dispatcher diff --git a/MDK-ARM/FreeJoy.bin b/MDK-ARM/FreeJoy.bin index 6a7db9a633b5b58d4887b14e0c11c5298bea3fa6..6dc25ed6e52af97df8b3da81aac3f1413f2d44c0 100644 GIT binary patch delta 2181 zcmZ9Nd2kcg9mn5Wt+cDll5AsJLb6x#Aq%nCTrn=OBOh5?1|!QcVRCSU$#Aq~Ff<9K zKy5R_k)gC!UpSm(rjW@rb|$3Qq5+anI|<3)X*;ZO+>{u~!h|tK30apzZ!H=1$#(Nc zcjo(JMKSe724p@M8>5Fv7NsJSK{P;0CqhA59A(g?c z{<#FW?@^J#Tk-G5Sv}llpPhTDUXnKX?9#epxEi!Esly}7wa1-8B6@Y=TfesBV5REn zRevJdHbF}#DplA2N%Y?*v>n6fErYW)N1Cqss`kV<2Z|Mo8FsP5C;yY!=EDW%o`-E~ zRU;=KP2bf#N;HEG*ww$R0T%$95jbgi&x99efMgF%WIyb`|2cK0mMaF4&mfQrq@_v* zC@+C>$0Ym!3e}{lM4`MlaQ{2R>q$RUWAtj@m!Nzp@w)I1+GWf|Cyd37zw9|T4ot>D z(02^4D*ht!#ljasBKJ(}{{4Pis+5eG#KAGJXvnrXLK_0|B^KnJi>OquL<}@_<+Cy1 zxi$LNWC!u%nLdb1aW7&6GBBKr(Dd$z%Ag{7wCCn%iUc~fJ%9_2o_+`d)JSs6Wus=I zA6|Q@RzR&Ot4)V-a`t1m!CYNJ$)`~y#R?CF)g}jo2T`t>hZ|AQytrfo26I`F_M2Vi zQjWZUHJGXeErrd^7cQ9r$3ejHWAa*BxabG+Z}HRS#ZqY|fyH%V#<`U9gHo<^>jq{g3! zb%vz=M9hTb4SHGzG|prd^l2HyUGa3{LEWE0uD97L zGzuHCjw&BfpwKb`IHI;6sALDJ2*^BwL4V(`fA6cgYha3+efIv|w!(Wue)~YL+VkBI za0c!|@P_hHxEC&W~KkvNNAAg1xf;#wJ~ zzl^9e=!l>>sx&nps4NhVD$lOlU+EIJ*nj9{`5%V@vg8TKt)OK9x3zofq0BJmGIeB7 zqn}{ni(B&V8q{P*``cL8Zy;p(UA199**Ce}00!+ods|^>#O?>2-=T3c1-hJoOlt$O zS{IP1l+{8a&qA_49XFb?uiUs}kR6QHU~;57GOZ5BY>?TME>ReCSmq?%iIk+3^in`p z8HnoFNNG*9l+i>h2NmQv{GmcD{1dh#+w;{Jx|V;c z*8qI73UJq}0P75wX0L@1qt2Yg@FKdL!^2Z(GRF-&Q9kE}`%pbMTfYM@5wcx;=i}&h z^ee8+{|q*cKL<=MCn5FN)@5>WonMc3*-frOLaIqLNTP0{%SollRX|iJp<4;f@9Y~j zxw`CmgcTu$L+~~_?DWFR=)BVnKS4L0?%ekh*-t#`{c79?vJ3D1Yp>L8&vwl_J{f&0 zQJS2CsH4d1D)aA1m|VtjD|8aFjc8prcl_(o?&KVVY?_K%pquFRq>{`*)aof(1oMw4 z=jgWQ5%vt~aovVh;bXZwRZthUxcwSv2*1EvES~3L`Z_3>g?Kc3LMXdMZ4qFmqKj0F>0Wr~VNCkYY4 zF<(ey+!5a*04LM+zC9kjj5=#Rf!D(;YZd6;G)W6fgjn?DNhkSfY@CQiKbU0e*k!Tk za2&W8;@8Gw(Z7UWtvf{P1LwEOYaq+SqRWszum>JNuLoYx7b%Po6pBfcIq1iLyY(Xe z-+dp}2o*vhiKHq{V$b5ef>ZDjrBgh_(n?SOQi&9cE>dWLmYh?$^N5BdigBAz?T!|Lp{MvxD^cq9dJDwCDxAAjb8Gu<~NQ|j;xhazj5wG z8h}4BfPHxtV2S45wF1C~Ju8P`)o`{Uo%NK^I_ph)d)hU)kW01QV;6YRGN~%A*UB!? zrUkRo+0x9}Y&~lW&}p8G*{s!UGt#zG2HQ#6_5+QcTII0Y#(mn1w{6BvWA~O*v?hHn OrK0J%8ixHNbo>_{dv{m> delta 2214 zcmZ8j4^R}>8Gr9??{@DWx5uHtalqao9Lw=fjX|Q2OPp76~&NlCYiXAYMwB65QRpgX=q>nQ3?C zec$i>zTfwK@0*?3w|C!#^1HAMWB|qi0kxq7Q2m8~D#d<34XEGL0}A}#b8I7^Hf1dF zS4#oa6DV7&eJuqir3T7vaCIPHP25t0YsKr~HIH$rH&DJN&_D#fGQy()r3%gm%b;7U zF>VD^esC{Ysy5t;L5KfqqD>{t6T zQ-J;ZZSZ1ClB}Re;XP$qBjh2ob6Q-AW-mU#TC_he$d_*3$6#)4mPdQuYs) zvmcDM2v`dPi(1V{Uc2p5KrV7L=?eJsm0G;NMXLEF#vNz8n0l2|k1bKoWl_^NOzJX| z_zgp2X4Ob;`;gWV&w?Hu$=ikfXv|X7@x$d|%*)4lbM(jdhlBN-Vqe$(0pt|6t>&7z z-62`%!Cx%#B13GUdPt+ zBwNQD*;-!DdU+Ge@dmbI*~2bibRwb`W0FA_Sx zsL}gHRYD8r$n=XbW7ZCn+kR`}zFJHpbw+bqV%m!2w6s)UYPJ>%PzK#}-1eH{R?rLT zEJHIXBs6OTbF*5|H^VqT5vkYwgnHDAAl=f4*SKQG)5((0=Z;wRPx}^ab)&oN4 z^j2_J?J>fz>C!&26;fnGsz6fxA$SbE;Qx*xTOqkdt{4|#(74~#aasQF{-UhqD!5!6 zp%e$U@5o0u2j{^EC@i*Nxsd}xi4c+U6oMlJ$D(!>#t=uRFg zuE6-{BK}f-9OJGipODx4gHg}fYZa8q85?elWH`98UnyLw-&iAc|(vkgBo z9L3_*i`t)}%*I1-0-b40E_)_w^3F>wVS_g&Jud6L3(~o0OnN=4t0TP;>8Tjg4ssQK z4HK2}78WFJbROT3Gm`-9AOKU0W*Xi2-KIBLD0@~&vY{N#|MZyM+$h|#Xm#3-It@yRgVMmSIt^Wb8`G~jx diff --git a/Src/analog.c b/Src/analog.c index 6c423cf..28547ae 100644 --- a/Src/analog.c +++ b/Src/analog.c @@ -475,9 +475,9 @@ void AxesProcess (dev_config_t * p_dev_config) axes_buttons[i][0].current_state = buttons_state[p_dev_config->axis_config[i].decrement_button].current_state; axes_buttons[i][1].current_state = buttons_state[p_dev_config->axis_config[i].increment_button].current_state; - axes_buttons[i][2].current_state = buttons_state[p_dev_config->axis_config[i].center_button].current_state; + axes_buttons[i][2].current_state = buttons_state[p_dev_config->axis_config[i].center_button].current_state; - // decrement + // decrement if (axes_buttons[i][0].current_state && !axes_buttons[i][0].prev_state) { tmp32 -= AXIS_FULLSCALE * p_dev_config->axis_config[i].step / 255; @@ -500,7 +500,7 @@ void AxesProcess (dev_config_t * p_dev_config) } // center - if (axes_buttons[i][2].current_state && !axes_buttons[i][2].prev_state) + if (axes_buttons[i][2].current_state) { tmp32 = AXIS_CENTER_VALUE; } diff --git a/Src/buttons.c b/Src/buttons.c index e9b8c9f..7ab3161 100644 --- a/Src/buttons.c +++ b/Src/buttons.c @@ -717,7 +717,7 @@ void ButtonsReadLogical (dev_config_t * p_dev_config) // prevent not atomic read NVIC_DisableIRQ(TIM1_UP_IRQn); - buttons_data[(i & 0xF8)>>3] &= ~(1 << (i & 0x07)); + buttons_data[(k & 0xF8)>>3] &= ~(1 << (k & 0x07)); buttons_data[(k & 0xF8)>>3] |= (buttons_state[i].current_state << (k & 0x07)); k++;