From bb5d16ca882bc5f11ee2f8687837c4d5491a98b8 Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Fri, 5 Apr 2019 15:04:59 +0200 Subject: [PATCH] bugsuche+ --- driver/cli | Bin 126216 -> 126240 bytes driver/cli.cpp | 11 +++++------ driver/drv/b15f.cpp | 40 ++++++++++++++++------------------------ driver/drv/usart.h | 2 +- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/driver/cli b/driver/cli index 699162a138ff917f751b96160bb850efc4aff54e..dbf9ed2831ffd97285ddf267071ff3fa47768e02 100755 GIT binary patch delta 35413 zcma%k30zdw7ysNRqlmzug6uLNCY$jo;J)CRxuQa@35we|j-pq6YFcPk znp&9Vf~J%UmR49+<`R@k578hqvvvO8bKe_4>i7Tu=kw9?&T`Lo&t2YqZ%i|-w^heQ{E&d(7Z_-uAgp_-a*A`Ab*=(_db5R`;VT*#@-(mk6M{) z4d3^z@z?2%(QFmpDfz~%()5`%XaTh1-+B!vumS%z;@>9x+l+tm;fGQW2R59~uIG6; zvVpOoPkw9FbRxL)$*Ql@1?gOM>8<%xw_Xy!djQ5|hyQS^-ky7g4)d3ERs8hvXWdIoPC;_02Qarf5Y zmhi+7&xSfJ@yGe>U{5|jB$OraU1*i6d0tkhRX)EG(k{@rLknc?vvCz^bVoj*r6=#y zGL)tAaVabHa`qMgeyBXd5XCt$lajZix z_*T{LR)?N`UC^U-UUe7+x6}rqb?C+zHT+1vtFQQT1fhq37Ke^laVyI*e46q06a5*Zrs}T3v^puF2=sq3blm`E}@#S_<|G zI)AfuTz1YARrSR>qD30Lq%K{nhHG``_8gSerT?tzSL)Eq)Etl0Rn=h>X~}e4kYGV0QQ z7vYc8&9B3-hnZ7{ZVz*H9lAZtygKv*1Ai3Jnr-3!Z9Kgu}|!aj$9f4RI&)m%;5qHf{0&}NOj0pRhh znl>A_OO&TKZ8z*6qgDx|aTSjTceR}bIII?T9iIWNeLF)!30jR&Tlw(Lr~n5R%|D1a z!#W>+xkE?BlKJ}`+p(0xcRO~I*d!hjH;+x@JLA@~xx7v1Gi)(`*ts2B%Kf{v$lj_Y zr2$l}Al=%>l>5NZWYN#)5vVh*D9V&M0gv*-30zeJn*)J>jeIY@OFe({UvIE@JPbT z1pWizQG}NW{5s*$gclK>9r6Vco+Cnm5cq`f_JrpP{3F6+2+tFEA>kbe&k^{0gm)x7 zL*Q={-ih#Zf$t_fmhe=8ZznvC@C4x5wvdfP=uCu2A+UyUnv2Vg0$)aWJmGEvUr2aY z!gT_lLwGmBtNs)c%K3gJe9ON7%pUG66EKe_;ao^YMO9}(W4@TxyZ-+jVU2`>})4}=dOyhPyF2_Hy! zQMMp_L4-j>C=mE3gbyY>U*I1RoH;ll|} z75H|-M-ZN!AP5_YFp>z70$)S;D8h{bUq<+7!rcVEknk~t>jXZB@Uetf{Z1K}N_aZq zWda{h_&CB#1U`cB@xZgoiv(dH5hjp8fx!C^K9TTzfp;f-65)9Qk0X3C;W+}2Cj14$ zGX&n6a9WMZ(*+(x_=|+63fzbAsj!bC5QHW~m_`DT0(T;u_6OxgflGwXAlyyhe{=>u zlW?8D9}zx_@T#Yx1_;j}yiDLf5I&pm5`kX_J~qHKyAM!Rwe3tv=` zSaWH4HCf|7MimONGE6)sOZ?B!V6u9UBPMIiesGnRC`Xf3zn&y5@vBvVZwVCZXM#wd z3;J1fWwK^enauj^!PKr2ojBQ0Sp;AQ*`p3wFat88{%~55q zfCSm=m?I#21{i(F_3|x3aR3H01ZY@^0BB}~e^F?j4K;D9ng^tY8jYt$d1z2BC`e2d zCK@zgLeRrWmA_<{kG9Jf+U1K>`73ecn8$SiVs_Z&CA<8#E?9qsM|o<4U2223)dq{~ z4Zc7R3x}wzg?zdyKUyrs(c?+-XGj-5%C;*17~{!np)AI zvD&~#ZSWHXP8sTMm%k+_$WRIOye0noSP}7k0b?^N{MexN*$E(ND5*oFG4`p+d^gh@+rkmNbFWax1*(}j zd|EFf3*>8iwG0~$Pjy-COu6x|b;4B|HE@Pwe*jYsA}GZK8yECZ{6?=(e{(prnj4gF zcw)1m!}SY*4>Fnm1WkFF8+(Vi{)Qn$A)Cy_<*y9mgL((QK(1I*Z7Yh*9&h3@v!}^? zTev&fFiSt>u1;qNa|o_*o}8y#dTg`hc5=vaGnv0LnM)PlUx7chW!|&sr`ISMhs&(9 z2x=lOOr7;<02lPV_;|Ooo;<;GPe zKVO%e**yppCyX7#QN1TFmltJyhD_F@7Fn~;xPfy)|96K#9Wxat1=CJfr*uS2=)u%b z_-^qCZZ*Db&Zuf}q@a1ex6UO{6_D4$=!$X+M%~NYWBXTOvH>Ld0Z=nMlAI z|95*dR?rvdL?s_e&M*@0MRqrEzrNwm|B8tgDSHQk7_V;;up}rZ%MPgulE}MZ`6#r> zS=32qSgwF%I6b!qG`~!muT|A(hEpGx^38o)W;Y`Fmr4F}A)nQQD!`)24k9n;)E8WHHuMrj1X z8QO49i269{i_^4ZE5oRjTEZhom#;D7#=os0U^!R_4L)s!L6fB(0-uSA|1|YKqK`Di zmKc^lrEW2o+DZ(ktI8{Y7y@$Cc9lvxx2E_7xxq7&xl)y=2SnKgeR;^{IFUw=f&5ZR z^Jbk@B!Ym|^wbo4#bkDA$!#eun8aK3TibEQbKu14X95_O8<9N4cQyG}th`=nvze)i zEc#Ruvdn*qL10Vu0-+nf*YC|PTce5WVJ1LcSCQ8ww!)U_E@Y|k993!pfoc~<^NY`? zHrOP(8z*LtOrVUD!97&nw;D;IsO-aW7d)saYIsG+BGNnPQ7G^@^1j z^bcis__zIiCC6L*N&i6CUvHv58Yj5XbnyF4o;N3)J>UaU)7ozNiQMXmpelv;{xc%s zN@xF>0GVBAbk{SP!?mG3fL~3GmYPNKjOndCTBBvM`CLDCH`5{6JOfU&`KFy1?4Ob6 z7X6uaG}t}%i8ww?W}li?Jj}$nt5n{6xN(NR#o*)Zc^O9@xaQn6hRW z9PDL6pBXXnQ5u4-bLTYs^^*?grFCMSk3}F_tO+LbPZaCeuX*W^Q1?j-)hs2LtUa|_3F5v(LvZ+!IMi3F z`ihSkn!sM=uMHi}lKAgKS4$`F@v3wmo}b>BJndlVDOEjjlbmXNb4u|J~X z29TJ)=k9WqnPAF2PfSy6W#*5H9}gVv(XbaaMBmTk-G)bz=fgc4I*>o`y!qh`X&vGE zkJP-b>tFEF5uqNFUi!D|cevlsVDfz=e7{1zORwJM`9p`1^CRK>54D{i1?PYGPv=Pt z&fonX&X4wR>O~F7`MW$}cqDm08hIy|MBYbtVm^;=YtAPgPfP>@m6kxMU;G*WVN4s3 z(R2RgzfT$b_u*Z~I(cT=8;fRIrx`xuW5;?(j-TNs>1d5=(=9o{gyBVsN6AF+PIe;AKgaSK2-Qmf2-Zq~$VZ~RQGpQy2ZqQ-i|9_xhF z((&u|UToMGX~Jr>N#TX*&AqN(|IeUF+&|{ETmKm~n*2x9q==&C-6w?we2AM+n&QiG z`+r8vMWx>oUrf5e>-m~VtvnkE?R6%U3&s56q(Jvv+%VOdkQ4adlUhb?yGbrpH?q!m z#4_3bJfw4f#3piZa3t1?V8YFAxC*<#2T$(JcJUpPTYCO+k z!_;MUsn1)zFqzHb>t1LnJ^h9seZd&>wLMFi!!ah$n_^2bCR4wuNkq-0yAV`beRuOl zQ$k!K1SZ0sy_UyMiFbcA@tbwv^_7MQ+Cp5kb+iR@?28tN-QpAE1)kL1;5M zk0jgzuGRerBr4V-jwR>vT)dRazk;>0Btqk{)TI1(X&DWdTKA(^Dsmy?Tu{ zj+@z*Jm2{dA2-d*m48$dr2G*rsM4A*`3G}`wu|~w>kj*h>gXX>l7;}8-Ri6)58Qd& z^!Dr>K5Kfo`$u2=YbBY*-f@N;4apYr%idw z8NGZGpiEmxL=o!*UaEwCB^Hw1SBPDyIPuqKM6fhoGQ*e6<_~80v%}nJX5a81OKi5K zf7*~5!>UhcA-aIWBE!*NXk;|P$sF7{&;)T=Ja+P&nLeItRAdo>>WxfR6TT~>BWC0B znJuy-p%J~5Vt!=Gz0a~1EA2iLqj?JM(v+r1T1B4N%`5Xj$H-`Tibg^)mR9AiNU29# zH&PxmuYRB|#r&gUAgZ~zq5zxT$0y<95;Rm|g&EZJS0r_F&!W|$a@MU4!nVd8-F*=uA9=%^7-wAE_lYmr=!fQF(*rr3;P znCL|Rt2J`>2n@|aL#4GaW3Q0|q)XI@hdNAli0qUKgE(pv<0Q?Ak|51K&;LdiKIXnz zeOsel?IaW@R3~9No(~`i2gwVR+Hc+x>HTUukXQ7HX15%!i+r$ zr%0DbfcfM_YSjhGZ#6Ew*6|*4@AE6pXFPPwY?jm_wy&q85^ma$MVWEcRc>H8V{ z--G{w{~dYE(m3`h&sZ84xbXw(qf+IMB7*4H%F}e*tQ2bWANZxE3D|BpFAKyjsqHdf z>6cTy@3Jml=TF+`@T{I;9gZSUN_S~4{7GrfUt8vFI`R(An394$#Ua}2q~K;sv=BF} zz%-|`bdGw0^+j0+8!L(oE3knB?KHO2I%UmiqGc^08Rg}Txxo!r7s4}Z%&z^sO|Ivt z)xQ{F43o|oRO84~I423EW&>2A)(1pY)3VhK=O-1#D)%{+duM+&H;}mdRIZ20U9z9& z=Xx~!?SwFwv!9>N^=kOFih1tmrMcb>lSmQ;e1Nm%UfIvV1-ROPPGv@pKC3EQqBh8` zF*V%_R;?Z@JPE`sd1Ms+H$$8l8x+b7Y67i2K+2n(mo^C5!8yLAo5Dnb>R9koE&Q7O zc6BsPs)-h=2|vxm5z&Rh!~)I4_aMQ5NVR6;RpjtrQJgp~k}$Q##9KnQM^Q5o#fhJd zIvfp@Dg$b4G}CM>;q6w0N$n5t5i5eS%Z>>}TS<{Me*7OsT_Mc|j|`0+f|VXfr)6#` z7|CEL6IG*&AX|t>7)X;?UHw(5@VSF2N!?VTF(lNeM(8PwTT}^uRbm@S#L;n@&~sLy zu6$&0OQD0zQd~F$KQfH@P^m;=qF;Q-L-W}}t%0(a$E*zTee^zgQcolDZYSfv(Q?{x` zCz2qHszSxe74Ez$yoCoD#isEV)Sk&-$#lwLitc4yA&rm}^F8G(AF;}Z!G%>3iH#ry zo9%J-p#}Oo9{r=>ng|fnsL}{Vsq#9~sH`I|)T*06?GVT%{==%41KnXW_o*aG&8xbY z*O4dIm~Y;y*1cHOy}2owh*|fOs=K8a7oyTCg!7fkAUnn4>TO zEjF)Zn|Q-Dp?C)+dQB9jwTWvIFqOTrCXD^WKVRc3ZG4kISQ9E8|B*Md%t1T*K#hMwMigV>cno6uLm-py&JP;Oj}88dR)4<^lq{?;p(b+=ROKMAit{GxB3%8Xg!A3jpyBfmse0{7pm&lW zEpkkb{TtX&!px;~w50rbL=}!yPnf!>ETw$`iBu{(h;5Buv>Vf9KKEZ2;xd&atnq{L zLHUmNU-vE!vTW-*vdO&T`YzGK!Nn^(2a&z7U6hdc7phRuGX3_QGc;{_Jc8rQUf{9Yej zW$A_`!%L&+F@qS6CIxrzXMMrNI;@@&z?W=l(csVhRB}})Ip5B)gM-~(@<20_`8tiN zNpr3X;7^Bj!Bhg?2&YpgLE`GcF?(X7y! z{0>DD&;?OKk4I~Mc56tG0}y5G>#Aq1V5r<1qY_VLX|17yjN9C4TO8ZVdv43Z%Wx;R z^>BNKq%ARH?+SNjZ{e=ngNAI`0%PXuG_I~7jTo_X@BFo}cq%xLl0pZ%IL*~7Wt0e- z9K^v44wLlCr-J11&mGbkGwX)B<^GYc+}MKR7RWB{KWU*GBs@S(7Cj z=XgE5)JHF=BHYrE<-eg$?9ZjF`j7vYywNUS{EYmz|0Q1~+!%ldWROREry~*B$Z{X3 zsr3NOs*n0#3JQdRQe~Ldo-#AC{5pSqM@Q+CulUU!-fR_rvSSeDgFZX`;(G0Z8H+=( z$uiBcB42D5FpJ6+x0DExuXv9Q$ZUQ-IU`ogG%;o?6_>;LJKHdv>3#O9Kl_kBc-1dr z52Q##;^4Go^Hn_3{#88H{!JPADyGLTOy=^aC&^~4SwAW-^7gNdN=q9gx<(4N!b>3-j>S&MN0>mVIBl=s}E8-Kb%%CRdvadkO(+q#$#yxfiWM8~Pt}I9FSProm z{-~_HhYT8K>Hpb?(MZqAo7nkE_zui!wVs$SBAlL>C*(Y2S;Aj0=%c5~UK35vIfPJ7 zvl?QjWgIy=anxBQ?zP&zgYZ*K=D!EwAbTS`#B6gCKzZ_t&9)8hirwso_r0usZib^b z!oE}<-i5Dp@K&k(fJ=ft@KC1JF?W)1>QHfij4pH+ zR(Pj3oU>P>v+b3ThMN6vM}jm*9LbTMHI6LQs_LWl)e+Zr#?0rduvMScQ)H;7lckF{sB^vXgK;CT_3`A5=N#o5YVcWd=L!Bu!SJ*ZTOHVoTya3 zQLi5p{nGcm#olOFR6nrEiRPXL{7Dq+DUE;RAK|Zh0V8y1{C^pU3m`k4A}n%G-C-v!P5QoJxfM)Z0_)Ec3Z8JTX9(F4jnK^%8SvsVwbv7q+ymGWX`4)D#>v4E^;yDnb~I;W}l1SV$RI@yTQDd zPty*KJh^)V)n>j&m)CJg@FP^r>On9sAL5!+q=4ukZE#^~gq)glJZ2nFX&Yv8J z%zjBk5Yy@^Mc@*T$!1?=T2m7iTf z#ojBjW+V3wA?*c-5@of!FlB$wbi#b_^w7gN2!Q;xrBdP;Oo8jCp1Skag-A?I+xBUeh?|FnR}~`!MyQ$?jsx2<;SALEP(6;s*$x=tuG(SWnG}s3( z%7bi#oUOP)|CQqo;1|5zp)3&&;ttQm_a5?)X07LE4ozvkLR1FL9VgmlW-dq@)V(#W zjOkQj4Rd+V_ad?vJyp%6SD!uyDQ`hpg|C>PY0qL3H&W= zah&xPh)x>uO*^p&L|SjC05;f(`%SnZGU0`(t9l);de1qs>@y=?-K7XnG)r~5!X}~# zp6s1hj%b0IOt?QypfvAZ$0H6$^(kFLc_>!iT1x?>rJF2S!;pDnJNe{p_vxGx3Np=S>1dMp0qMuKZx9@W zn#BOhG3eZ;o?x0QvF%H;2D|k%9KDkmc2(K`rC7(XBE?rKuK}Sd`Q~c@6QSTTE)#RG zoUNDx%}Jfg3@cv51uQ&*ISBZYg&}4h`hIKgIJEC+IEL3fDltPTi>|8bn%>~k-uL(M z$2-@^Lch!QEIfy%$U>LPeE0hi23OFP7gtl0VkK$~zxBRP_Fas8rG!#pjVVNt7UD1! zDaV3zUO6E$gcT9iOqNu<=@zNHp^CmqqPWSli>`ZCG}L6tzyo+yHk)MY*T{~qCEEyk zQ8gI}N^n$}QozW6mL-=otsnWLAuR=knQ6gY&}1uhNcKRtn$KiSi~8((;*^mlU=b z_w$MWahGmX8;vY4Mm#ll=^y?t`KlGdh_aQsh~AZgG2C>o5>kVc%KyJo34m;bh7 zpmcaO@4M5t^UCFv%>TM?o=&=~@oAaxw=9?RiG^>o*0=pu^8u&YNRyBAoKsV!k5=&q zr@W-CxxD@dfj+-3BXN4FrMxW)q*NIXsEl6D6F=zWcbK%r-paa{Z1EHCWrx65%2@ff zT)z2(wNiNQ;TES$m{;slq$&1x)*X{&G`&bnFJ+c0Etc{|MFXY&%lX)%0I7Kn&nX(0 zauU-E73`oTHe0_HPcp;k;J5>bN+LO9jbAehad>14#}t1NPpPtkASxTJ3lK6nA2dZE&9(97hBd$0*N1157CR&+XMrQC!q;912%4OYxY zR&)#btHl<-+{OP(c=&wY^I}kg_vb-4asi)t(c*U)gY3UGo9A(lkAoWAeF?(p^Lf{g zEq=Et-v4yt#7q1xggr<&ZytC3#NyZVe+rjp@%KLoYS1$a!bLCf?;zX*asRhw?<~IJ zQc#1eObAzH@pmqbl0KTxoi9&G9fp|kn)U^UP+i4gbqnq>7bI)U?J3oL$mfud$GIb- z4`cSLeRvQV(E4x=H9;R3+Z2!4@9N2n| zO|QczTaEB8c+uyk?Dhh!RQ#|o z;01o-1ZpI2LBe*YRB_cv^=qX5oB=(#=j$iOKFr!k9j@?cuY#%AztS3DB7k~)-e0vM|K^U7eMWC)b# zKi)%YWF~6OoaF9S@u61yAEC^tmD60l=}I5zr`f#hicgm{6R`8aJ)21F`RNd`q+vEi z?IJnv3%pCPvV#&}=@Lwv7&Vqz#SuzL`$R=kZXC{!|L@Y7$ki+`6StuaO8tJ}_?fGi$E)V4CB zrnbFBm}04O*7B4&o45Y5vov%%f8onEZ9?G=`f~MZ)RW;@Qm}-v|8aN^M?Bk(zYOi@ zSpPeKz+=ww55F9hJ@j3p&OFy$`3){8%g`KO8R`L=vSpgM?ucu8)~Vdf06t-mV~PdG z^j4Qw#=+O{K}LwXLqu%8@j}m)`^w8AY4zZ*E!C)u71@oiLLf>msh}0D`heHKcU%o* zpYzjKyRr5BpR1AGXHJC-9!aEEr{ckj)XKyE0CIrm%e&Q7)Q77|BIQk8!Y)udR6yHV zJmV`5>8;oKs;_!Vdk^x@z6$K#1}bO`PaK^%=B!x8EFOsmNuP^EhOF`7z!Hy#qgD{= zOhll5>!!V$gq{a^)YrYej*tz@B0Qy_=d5o6qdO(nnLO|7X41;teDBvuUI{|xWiJe} zP`Z6@D)tVor*emHqNOLhNG7B}L&UhyFcGO~=~v&K&&(I*p0N-Pd^qkzuJ{RsC8-(*^p z3TUZVj#*9(kB;=MA=^jjbc3R9m@GqwnPP{gepeM2zfV6|dQMp_ce$dWzWns~c zNKD-~jtU-Dy&rr$R^3dG`V}3FUA1_ViaOXgoe%oHh2*-G&;LHm+XAuwXq`Eh7ky%E? zlOg<~vR8^2#{2wYl$=KLP34>Ya-sgew@br^@SgXv#Y;n6kwf{+`?1p9A$;HcCDI#% zcvwZC#}DABcUsn7+8cqNr}42B%e%Vt!JB3dUOLpKgIL5@c$T%&n*xWdG0zavsb#J{a7t*I=x6 zu@ADofA&7P9g!!b;dy&c=j8CsWnwJHkK4jM9>$K_ZNi*Wq{xs-v~2dn#GP1A6|uUk z1h1cE#c?!9w7gH71x&G)_+K_-GM$VDxc(8>_Ch~A@IQ2P=kGpj_T0M=gC^RgD86dT z9kp7TKtiYvP`CnQ^L3^EVE*)BYPJJZq8(L)<{jot-n-f#G-ybAij;*&8L&S$)%f!k zNdJmyNKIocG!fHTv{O3NZJ?(qI)q>T$-jYx1pXPwtA6s8cBOHbN?$2+0B>D6xZ^tm zU|GyhN>jLtndh$rgt;me*O+hAyK(Wt4d$q&B#Z%5KA68>X^b2S6uSt!4CKXoIau0p zUJ73M6kJsli#5Zl|K7~?RdLe8RGwJX%;zgIU^z)SHCc1_5)hO52dR8^Rnw@wg1ra_ zZat=`j4i?=JlFpFE{0$AS2e{KXZ2C4?s!#q$p6soB6Rn7+Mi6<)_spC7}?K5HK6z= z(#Uc*Qj=SpT0Zpo>QN3nqrCU?eBRG%rELSa{?Q9kWPh61B*Q?y{?Q3(@bhAbMi1cA zf0-tw_2b|EvNUo_q7L8hpykC9@4DWo9`hxc|3S~s>qpLDc2BPULfoDdzUFa{_Wk?T zoD5jn2h%{RR6Y^DYXb=@f_=3TlkU#Goc)>>@--ULd{}27oguPi6ismPe_HvXUt7n$ z)d!W!^N@VY;Z33^TskF?t35IxbjT`dGbn}H#lKFNws!PS;ibP09rgsxwb~gel+%}G z#A0@nIB+)!nNy>yeFA-2a7&ez&vH>cm6_|6{62i$lN4!LF2DJtLi#G1fBaj^?D%9- zv?x{GJ+vbX{Uv`#3&d~Adbn7-B$BA8^s&ooAHHOu%yKA3QDzTKnm%ifbd_?0C^)Ss z?+&H(X9e`XFRgCh8Shv;tKi_j6uhD;Q0k#Q6%m#8$nx_hzVGRaQk?0q`|s13bg&m+ z`o~?VLoYt%&vnw9z4_BW2XzQrg_}z;z37T13>lj;s|UFk?*@kQI_b53kPmgrH@z{c zLP)~Dr>MHWdh^|XeJF+X;FJDVr2aj4|9_%8Ojrzkxnv*TNYAB)^uYlcqBqx54s<7l z`|}C4x{P_rhz)?p`eppsKfzL9cYf=iFyAdCLVI^i0q9Wrdc6&2s8)UaA|7aK7W``> z@zEXC>AOu7bV=WD2;w1sPd?I?;`M7+pjQ2>S>pD&2$L|3xg5*lXKXDT)_^Mi;m9I4 zH)D+_^aMs?g4R!|V1o z^iXPfH@T0*!XjU&A^xVMKv(X0hIc8>C&em@%QR!jb{QqSoBX=O+Br?_OkGtB)yHm1 z>?jM{-bLi&#%xOCso)}bMmMt-st_bB9Y-6fhGzQQm*kTU%sYFSD*kjP+1(7w*aXNEk=kp)P*I?69Qvbcb|F_=>=@$XD0W%^YBIQOy--2CbC*N$w~^Ft96 z9Eb$>KZa!>wZ*WEQl%bE18Q+;Dm4CkSl*s4hNX}aB{ZMv(y9-eDTbxAw3F=b#5zd( z;^Z_Zwkn~DLQ+>uI&Krwc^9IogQ^twq3WP2t|5LwM2TwUy$-TpBQ{WSjXjpph+Se~ zKR+j|MZZW+))f5@TE^`~e|?51`X2A9;+>{YdN2VBkK>Rtq~p>HBG3l}w0@|bek}U) zD)+(*a*+%34BH7b#f;}6_UUON@$JQ3UE4oJZgFLK{t;1__}~1eW=DY2JU7}B{HU-F z@hcWU)!Z$_9P6p=VdOVt(!@&WHdu^s1ZD5mpLLya~vHT-@apNEv z@61KYhYYOU)D)Pbr{<{Z*(3_qzV@j1J)om#EAXBYZCP^9;V6k7(`0_7c!O2(88}*9 zf9tD5LiKTzL{3HuP*c~PRdSa}A{jlJ0MU6GS0>gZ(_Yl0+o~?<;Zm|?sDk49 zVxqjqjkRhzpdDCvw>AJ>-4oYJMwI-W8*A?xG!=T#StdiXkmgfmV`COPY;Q~Kb*y{D z>!pUU(U|$M zBl3yH?74sf=)rheFoELG4+Ow?Dxq40+tVh%DM)$YfXL^E5C(PbFnHF2Vty;cdmE0kt5t$$AE9c zRH0opLMy6;QrgJN+%Y`e+lbfI!A;C>ftm?2 zsk|8>hkCGZX+ealVWtN(91m4(=CrQXu!78M8Zw^I&?rJa>w#ImESxm7a|+NJ{}?73 zN5cFA3Y4bv-1+!(6~pP$3nwMkDQ*=J>J3WFGNYQSap7vNdTMyPaQU@n$ko_Zs!OdX zI5k(jAtGKTP`+p_|J96jbZV#xT?v)rJz2Ql52!@-0WyU;1YXcnS8QHlzIahy?#ZJ2 zHzUvRonjIcWr6OHgtw=H3s5FCHwGzW7zx1hg;M3+mefo?Y_uq-bO%VHMrMze^T`s1$_AuX?k7-W${a@A)A> zw1stSlFllhw2~csSVXVOBAqd>5!=2=T1{EBzD%1WE78R!X)cI3drb=NM7yIbf7R3^ zK;>Gn{E`m~G4!wt(})djCBN;%!rC>cAyz66kha{jcvI(WQf%4c?=>U$F7KIKWTEXJjEZi z{f1F>Y(@~(w!bv9#jzrPmc}H{AlWm3ZE#;6NFLCwnEK~{top(s@~HsUIXgyh#1Pb< zNP~lLnkEkvbEO zmVj3M^}$A+r>S^(@O;qeL$<4Mt&D4a%xYvZb3PtG4$vQ5S~pIP3}O+^In|UQYD&M+^6Zu@-B96$g}&QU zT7K^--+9SpEz!sC`pdSKELd9LEr+yXA<}q%Ii(fw2yb~#E4EWQ=qWc2WzD=dd#W*} zBC+MCo?!WF>VyAWedL5t=GUzRx~Vd}lqV#JN#wI;D#fHY;MuG4F5D^Kr4Ua%k3*Sn=bRK&j>Tn{0JPvgQ#s2( z{vVYyG(`>wV=Y@Wpq5&7m~ty~lr0|cs*$aFt#?h4r-ZR6sh*eoN*D_nu(mH6SUaKz~Zt=0M$hrd|Gj5^%dh%>eE-oUlI?C z`3*@>9#O*Zq@zA`ABApQ2hjD~xK_SWnXW|GMojZrHCL~;W(``bLXOLC{4LttzyzmE zRz;MVBCVy$*WU8Q)+{{2yAK84pnR!2j+-#KHUuu-_r`2J12lBlX(NIhS>C^y91za@ zv-kEFEwbVv?JlnAZ}k1^tm0!b_{`n-RAon#+J`mbq=li&wMgN-$z<(; z=NI&7$Booj_1ltR+q#Gzzl<#3fqbfmJw3@yq2NPw<$o$Dp}bl3!)p{Mqp9YR$|=I7 zN_ROsf&~Ol#!`+a5^dfA9F%DOI~jL-Vf5Cmqv^xH>nZ&kA3GDlmPsuVv*x}q4&QT6 zoi!)3&Cp4SGsjJz^}-~ho$Q2*V-wr4V23R+%-CSwq&X8O&D6<5+p|fsfcum zXwPCBkn8x!C)=~O9UI20nD)P0EA^uLxQWKZq#nkJ<1)t?Cr-+=3#Fb_uZ|_ahQx0& zH+gAW)=pmEk&VudtZ%cGq0G`xD_zf6%QpE1cv&9(!}cLHFN5$yrpvD?cB%m~)$N&pL>zs${M8wLGUfEj?s#x~oL`uNMK z3AngS48SVDR8*G<@#X=h1Lgy60yLs;PXQL7KNP?Oj3P%zoh}l?A_Xu3GwN1?SOxA7 z#EKl+5D?pd=>)MIEFjpfCYei0gC`n0hRzh z1%%mB<81wDZIlaK*8UI2KG0szduhKnj(JO(u4nW7tc2p9pF4`?Fzf(?I} z5D~lxL!=Ne81KZE0Ga?ZrowT+GQhonsnZ}&bifCIy6HBX7j6;q0FwZXGvF9t!3BSVW3J7%8ZaGj55eU<;2|zjSHLqUDgscoz%sxxz{j$8XSOIUf4$8%*c&2wumPB`0iu9z8`0f>Wq`px2%5tuz>-af z2{3;fTp)ZqdKm*N@)Zmezy!byxx6#Zj&|B?H$lmN6;Wby8u=PV24E53CcqNFy?|wa zrvT|IeW4hdx;^j+F!e1!4AH8+h#GjtKAY_-U>TqT(GS>c#{qQ*kxjrzz{i031vcA6 z+-79wAA(|BWW0w^0CmTaEx-c69f0X4kToOtfO&v9fO`P*3n5SRlW-^y_-PmbG!`KM z(9;300u}%+20h~}x({L44{$Z0?pGA5JUbp+L@y_Kdpv8aH|d~K z{xqJo$WCp583sc34=P_b3jenDwAt!uM51Nj-zLy7DTxo!mg8R@Xl+%Jj%akkzSs$8 zG8)Yb@BseJ2My6GVMQN|23-~Y zO>~l9?aG=-)1Bm_U0IOy)JeYHl@0OHIb(Jr!6a9=X;4i%b}*eT)LHJ+jrj*ebvNpK zeVrRP=7C5lp??l&v=F#M4|!!b)_mwF7n^N8a9yIS+e#_X)hoANlB=;^edgrq1-*%` zj{O^<@N~fvs?ybFTZU_0x~tn4d1du2Lkp>h6>AvkJ|JjYjI^A@$*(BuC z;jr8_fpvGH3I7okIph%@DDTIAPJ=P)KO&(S@|Z;CCwEAsqbjIz!;V!j##b|%J6-m- z*?uMIp+t;xT8%pyfu|7O!F4&*Cxzgpdoq(K-y@l#RyNxb!sAHBTkg>vX8#Ja*?dS* zm^`yP>)xm&!e*ndKRYz=lS_NB0Qq`%*4$}+TaEgg{9O-bBx19sCd8_ssWH-K3nCRi z`pVrBz@63uiXEQAs3%3m)TD!4)tx!WB|Vsf(}DIH=NNIiHX7UkRfP4*;VseLUrtJ5 z!6OuuDP^3xbtv*nWpEXXO%>>cMDOeBCcW+INZtJabOmbxR$=iWnhwQ!rxuNB(H*q1 zVe)rLtXcg?Tt61qK9b{b`Hv*#(<)-P&DMe1iaLE!^lB2&YfzjD-Y>Xz@b#5TQHS!u zWMn6!Cv$9c9P8&h6zUH?a&Au+(x_8{%{H236(9L92u@Q#7)ykU@((?63bhsZc*6I{ zO?t7G(zOIRt`}?VbgC+7}r59-K01??|rv&+#iamH@p;!wG;H*49b z1iXDv?C_VDJS&X_$u1_`XhxdkXcHpnWRgdiSRZ{Cqc!Z z~ZjnPKyCfbY0iOH;~w0O4Y9sN1lhRCy%nQx;bSRzH@Z+liJzLnGT zIX2sEc$5==3&}^aZDSDjdY=4AAs!M|4-R#kaZsM|J3Uw6gy!1lp(Ve)}kTVi3EC;&{hW8 z2z45X@My?$52}!6a=#STPG10_!Sd1+7NEb1%M$qwTpChfHe!s;wutJlnTI@U2=kSH zN@2}=ZUSfGSexwbPdhb_jAo-(gr8jP>?WxLZmxI zPct)Z=^W$%{n&E`XV~kKVYAJq`Qj~iIbaA1>HU5%KMI`b={DO+;$*w4?*877wR0tR z_fD|cKEsH0cv0@~JnQA^0F}Yme9eJ+hZXXg=UGcv+CkEW>^-85mQO#=+6L0B5scL( z@3&{m&IEcF&^yVE`?KD9+A=+mNB3t#N8G_>K~~KWGD0#1+VLI$?ILKk zvseV$Iikt42eGC!nTSsW{_g_!Pk|*-jaSMS;D+mT&~{*(+=N{FQhqWB%V7a%^RY$F zMH`2ma@=5qRR!8bJ8hi2a4>7xu>@P{;M|%`5p~iX+HTjPrGl0Mm;69`fr|AxgF5^E zHkgI@(_Z@G&(9Vc4a|w48|BzE*2?t`8t++&=iAiyj65@qb=T8YJ4t>&jfLyouu^T3 z@8Z&R6HH&l2Hlk;`^wFSuoKk)*V%0L zGzG)BBX;Kz@~t7Ph3j${Y7h1#Qpsi4p{#q`tDqg(YO}o#QHRkO>|*(ow$S?59<;~Q z2AlmS#7~r$3}vlDB4EaO8*aCV=3Cw7b!rm{+EbXkDStYYwKL>EbpA%%GNMx*E;-AF zp;)}ahp~{r9NZN={^{9dp{))LbUVO1F3%puJUbl6v;iUc~Sjt{vQDr{S!%;W%gs+qDhNy+-OZ zG<-P1aE8SQXrgBl4hID%NIo%~rY>+U@4%!+b|-<;6*H$af;F$7iXF`0hoWN!PRI3D zZ13qlggz8S4rqHo!^|Z<6gb`RW_H4<6N1LxWi zo9#aG>d?qZ9&19I_))AyTpki}=W`4L@=L^-DS8IOQg;BnQ2dTSTjFUug(O^_qvVyy z+ecx@IOD!7^w{^KSZBP28zeU$i)U^VgXAG&*?378Bo`8XG4R-cUtu0nyEd}ZJl4D(eukFtdidE{f-F@| zoX0$Q8FQ4bwU-yp!*k*|%l^}^+E2ae?7!@4 z_rw?@x1P_MXQ%(9QtZFmT31hrqVl!hUDertX4U?)s`j5z)oF5e{q~!JsOwT81090}EJYlZ-BE3(WT7GcjC_UdYC<9C^b+HkK90KQCkf zjf!EMnQmLKm})dfqF0s3Kc5_@)Mr${VuTEZH%K zm3il2KUVisPuBob7F)_Zy`KivW$JYGbPaW@n#V=!D zvIMztE^7ynn2SK{vjN!RGZ^h9{LXj2JX^3$DtU;e_GgV)tFwC8e$aDPLZ?0;Cd^R0fid+n=hfU7D?O2h|l_ zFS+$f)=OT!5=wJcGRMaGb*8vB^7kuYt6(MTBt`a?@2_NIq@_L@Mvm&{%nYHt=&lI#1qE7>?XF}_7d4!p@^|nuw9aOfipT)}Gw6ZZi#uaKiEUMzu7o9*o zRCGdqWQ7+ca^O1TMyJSe>!2+)Or8puo$$3PPFraDoW>rAtlFn5geX3G?30L|uuH{f zX>@+x=6ew19ep0!Q3 zuPbk;Ep@M93L;Z=tK$&p4S|koS_k@^+w7 z>TUTGK%e|8sycfuC2IN7{VF%vh~g7@dPu(8tj@t`zyx^An2>k5GI+o99{Hoom zNqhZX)95+JRr-6HM^zd<)vOY>YIFm3*JQ`O%+oCpeZmA?y~h9YYnxbOp8~Diu=^FC z7a&C8=Y`3iY(mw$omc7hG~U#d`=|6AqLUYS0U3Fb*F}rpa@Aa`YC| zhi;8L9?;t@OO>-1GY;5=Aq44xf=bHM$i9HC3s0H zyr$73_sUac>>cvuk7Z1}Zv9lY=A>?fpQ^Uxce%+{)J(})l|NJkx_#hNdUBq~Bfys; zd&z4EmerRFx1x%5Kg&Mb&<$mEYN;D;AVfE6hA^bWXRJm~Rrk55XZ2H{(Y39duB%4> z5Oh&X+GxTc5}zv?-MB`ea_Ke}7H!|Z&eeoMaOXmOZr?fE`?f9Uq%`u19Jd`4Zic*c zJBCuiYI!?QA8g2k0=ku=Pl+a;Uo8KzoxOw=bM`9`&&Ra=3Z>)?x$qUt)9JfqX$J=8 z|LNN5VVa7f@ViWkgWy8wU}%XUlmO2fY@!aR14*a4Iw&SOl!-VvH%%~xL_wCbK>JF6 zu+^Bx#1IS#4Z>MDWdT|l&_tsw`ki;~Vdz|DwI48>;c`f0qT3({N9rp#7HS+)9_T@StxV)@DQAMRPYWJSf8;OY|ilkA1-LlA_y7c#FCn&W3Df#gBSO2?prh z5~8J&t^2m0N!%~_o{$xVPG{Qc-3rBCU`c1~n&>(74fVY1s=sND>y>T?ZNCpj?2>+> zuUxN8(MB2PJTg;m5A;JNpo^nqq6E~C3YN@TL>X|!cK0|c-8n7WDQoqvN7H4Xbwt}` z_(aD%HOm0e3oi#=nrBx*7)pEilA;_fNxOR{+PPt8tEEf*`>;}~_J{86o9Jo(^EBr1 zgtB-%p^eJeD%9Xc$~obj2e6v86jV!>5(luV-jo-rQWjR{YW7jfxqWILn4xxMb;wmh z4Rg6u*_@VjN;L3`QYCYsB#UgOBu>jXHDK1M9PXrC?r$3W3+falzMFrz<4hcyD0Wr$ M5ZY_BduaOp10_rh!T$O*2 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 diff --git a/driver/cli.cpp b/driver/cli.cpp index 506e143..d586e52 100644 --- a/driver/cli.cpp +++ b/driver/cli.cpp @@ -1,7 +1,6 @@ /** TODO * * - throw exception -> raise SIGINT - * - delete view stack */ @@ -81,7 +80,7 @@ void init() // init b15 driver B15F::getInstance(); std::cout << std::endl << "Starte in 3s ..." << std::endl; - //sleep(3); + sleep(3); // init all ncurses stuff initscr(); @@ -262,7 +261,7 @@ void show_digital_output0(int) { ViewPromt* view = new ViewPromt(); view->setTitle("Digitale Ausgabe BE0"); - view->setMessage("\nEingabe Port-Wert (hex): 0x"); + view->setMessage("\nAusgabe Port-Wert (hex): 0x"); view->setCancel("[ Zurueck ]", true); view->setConfirm("[ OK ]", &write_digital_output0); view->repaint(); @@ -275,7 +274,7 @@ void show_digital_output1(int) { ViewPromt* view = new ViewPromt(); view->setTitle("Digitale Ausgabe BE1"); - view->setMessage("\nEingabe Port-Wert (hex): 0x"); + view->setMessage("\nAusgabe Port-Wert (hex): 0x"); view->setCancel("[ Zurueck ]", true); view->setConfirm("[ OK ]", &write_digital_output1); view->repaint(); @@ -288,7 +287,7 @@ void show_analog_output0(int) { ViewPromt* view = new ViewPromt(); view->setTitle("Analoge Ausgabe AA0"); - view->setMessage("\nEingabe 10-Bit-Wert (0...1023): "); + view->setMessage("\nAusgabe 10-Bit-Wert (0...1023): "); view->setCancel("[ Zurueck ]", true); view->setConfirm("[ OK ]", &write_analog_output0); view->repaint(); @@ -301,7 +300,7 @@ void show_analog_output1(int) { ViewPromt* view = new ViewPromt(); view->setTitle("Analoge Ausgabe AA1"); - view->setMessage("\nEingabe 10-Bit-Wert (0...1023): "); + view->setMessage("\nAusgabe 10-Bit-Wert (0...1023): "); view->setCancel("[ Zurueck ]", true); view->setConfirm("[ OK ]", &write_analog_output1); view->repaint(); diff --git a/driver/drv/b15f.cpp b/driver/drv/b15f.cpp index 43a4a6d..de8051e 100644 --- a/driver/drv/b15f.cpp +++ b/driver/drv/b15f.cpp @@ -56,17 +56,14 @@ void B15F::init() void B15F::reconnect() { uint8_t tries = RECONNECT_TRIES; - while(tries--) + while(tries-- && false) { delay_ms(RECONNECT_TIMEOUT); discard(); if(testConnection()) - { - std::cout << "OK" << std::endl << std::flush; return; - } } @@ -76,10 +73,10 @@ void B15F::reconnect() void B15F::discard(void) { usart.clearOutputBuffer(); - for(uint8_t i = 0; i < 8; i++) + for(uint8_t i = 0; i < 16; i++) { usart.writeByte(RQ_DISC); // sende discard Befehl (verwerfe input) - delay_ms((16000 / BAUDRATE) + 1); // warte mindestens eine Millisekunde, gegebenenfalls mehr + delay_ms(4); } usart.clearInputBuffer(); } @@ -140,7 +137,6 @@ std::vector B15F::getBoardInfo(void) bool B15F::activateSelfTestMode() { - //usart.clearInputBuffer(); usart.writeByte(RQ_ST); uint8_t aw = usart.readByte(); @@ -149,86 +145,82 @@ bool B15F::activateSelfTestMode() bool B15F::digitalWrite0(uint8_t port) { - //usart.clearInputBuffer(); usart.writeByte(RQ_BA0); usart.writeByte(port); uint8_t aw = usart.readByte(); - delay_us(1); + delay_us(10); return aw == MSG_OK; } bool B15F::digitalWrite1(uint8_t port) { - //usart.clearInputBuffer(); usart.writeByte(RQ_BA1); usart.writeByte(port); uint8_t aw = usart.readByte(); - delay_us(1); + delay_us(10); return aw == MSG_OK; } uint8_t B15F::digitalRead0() { - //usart.clearInputBuffer(); + usart.clearInputBuffer(); usart.writeByte(RQ_BE0); uint8_t byte = usart.readByte(); - delay_us(1); + delay_us(10); return byte; } uint8_t B15F::digitalRead1() { - //usart.clearInputBuffer(); + usart.clearInputBuffer(); usart.writeByte(RQ_BE1); uint8_t byte = usart.readByte(); - delay_us(1); + delay_us(10); return byte; } uint8_t B15F::readDipSwitch() { - //usart.clearInputBuffer(); + usart.clearInputBuffer(); usart.writeByte(RQ_DSW); uint8_t byte = usart.readByte(); - delay_us(1); + delay_us(10); return byte; } bool B15F::analogWrite0(uint16_t value) { - //usart.clearInputBuffer(); usart.writeByte(RQ_AA0); usart.writeInt(value); uint8_t aw = usart.readByte(); - delay_us(1); + delay_us(10); return aw == MSG_OK; } bool B15F::analogWrite1(uint16_t value) { - //usart.clearInputBuffer(); usart.writeByte(RQ_AA1); usart.writeInt(value); uint8_t aw = usart.readByte(); - delay_us(1); + delay_us(10); return aw == MSG_OK; } uint16_t B15F::analogRead(uint8_t channel) { + usart.clearInputBuffer(); if(channel > 7) throw DriverException("Bad ADC channel: " + std::to_string(channel)); - //usart.clearInputBuffer(); usart.writeByte(RQ_ADC); usart.writeByte(channel); uint16_t adc = usart.readInt(); if(adc > 1023) throw DriverException("Bad ADC data detected"); - delay_us(1); + delay_us(50); return adc; } @@ -258,7 +250,7 @@ void B15F::analogSequence(uint8_t channel_a, uint16_t* buffer_a, uint32_t offset if(aw != MSG_OK) throw DriverException("Sequenz unterbrochen"); - delay_us(1); + delay_us(10); } void B15F::delay_ms(uint16_t ms) diff --git a/driver/drv/usart.h b/driver/drv/usart.h index c4bba52..1659316 100644 --- a/driver/drv/usart.h +++ b/driver/drv/usart.h @@ -132,7 +132,7 @@ private: int file_desc = -1; // Linux Dateideskriptor uint32_t baudrate = 9600; int TEST = 0; - uint8_t timeout = 5; // in Dezisekunden + uint8_t timeout = 10; // in Dezisekunden uint8_t block_buffer[MAX_BLOCK_SIZE + 3]; // debug statistics