From dd58ec7fedc2a524b48e0de5471308e2ad8cd1e8 Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Thu, 28 Mar 2019 11:11:19 +0100 Subject: [PATCH] Kennlinien funktionieren grob --- Makefile | 2 +- drv/b15f.cpp | 2 + drv/b15f.o | Bin 50896 -> 51368 bytes drv/plottyfile.cpp | 2 + drv/plottyfile.o | Bin 15936 -> 16448 bytes gnuplotscript.gp | 34 +++++++++--- main | Bin 54792 -> 58984 bytes main.cpp | 132 ++++++++++++++++++++++++++++++++++----------- main.o | Bin 8224 -> 13232 bytes test_plot | Bin 8440 -> 820 bytes 10 files changed, 134 insertions(+), 38 deletions(-) diff --git a/Makefile b/Makefile index bf36ff9..a2dd96d 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ OBJECTS = main.o drv/b15f.o drv/plottyfile.o drv/dot.o COMPILE = $(COMPILER_PATH) $(CFLAGS) -B15F: $(OBJECTS) +B15F: clean $(OBJECTS) @echo "Linking..." $(COMPILE) $(OBJECTS) -o $(OUTPUT) $(LDFLAGS) diff --git a/drv/b15f.cpp b/drv/b15f.cpp index 71bfcbf..20333ff 100644 --- a/drv/b15f.cpp +++ b/drv/b15f.cpp @@ -282,6 +282,8 @@ bool B15F::analogEingabeSequenz(uint8_t channel_a, uint16_t* buffer_a, uint32_t { buffer_a[offset_a + i] = readInt(); buffer_b[offset_b + i] = readInt(); + if(buffer_a[offset_a + i] > 1023 || buffer_b[offset_b + i] > 1023) + std::cout << "schlechte Werte gefunden" << std::endl; //std::cout << "(" << i << ") " << buffer_a[offset_a + i] << " \t| " << buffer_b[offset_b + i] << std::endl; } diff --git a/drv/b15f.o b/drv/b15f.o index 2af31635a23a29701735af90df4d7af0c8c94163..ea73b41b58b8b33ef63a3fb88643d5bdbc682447 100644 GIT binary patch delta 15330 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 diff --git a/drv/plottyfile.cpp b/drv/plottyfile.cpp index e55c204..5259633 100644 --- a/drv/plottyfile.cpp +++ b/drv/plottyfile.cpp @@ -17,6 +17,8 @@ void PlottyFile::setFunctionType(FunctionType function_type) void PlottyFile::setQuadrant(uint8_t quadrant) { + if(quadrant < 1 || quadrant > 4) + throw std::range_error("Ungueltiger Quadrant"); this->quadrant = quadrant; } diff --git a/drv/plottyfile.o b/drv/plottyfile.o index 33d156269e7be379674e085d407addd3fde7c492..ef4c3bb0488cbdf992fd2a530a56a4677d484c7a 100644 GIT binary patch delta 5283 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 A#Q*>R diff --git a/main.cpp b/main.cpp index 4942aca..74471d6 100644 --- a/main.cpp +++ b/main.cpp @@ -2,44 +2,116 @@ #include "drv/b15f.h" #include "drv/plottyfile.h" +PlottyFile pf; + +void kennlinieErsterQuadrant() +{ + B15F& drv = B15F::getInstance(); + + uint16_t ba[1024]; + uint16_t bb[1024]; + + const uint16_t sample_count = 100; + const uint16_t delta = 10; + + const uint16_t u_gs_start = 440; + const uint16_t u_gs_delta = 20; + const uint16_t u_gs_end = 600; + + pf.setUnitX("V"); + pf.setUnitY("mA"); + pf.setUnitPara("V"); + pf.setDescX("U_{DS}"); + pf.setDescY("I_D"); + pf.setDescPara("U_{GS}"); + pf.setRefX(5); + pf.setRefY(50); + pf.setParaFirstCurve(u_gs_start); + pf.setParaStepWidth(u_gs_delta); + + uint8_t curve = 0; + for(uint16_t u_gs = u_gs_start; u_gs <= u_gs_end; u_gs += u_gs_delta) + { + drv.analogeAusgabe1(u_gs); + + drv.analogEingabeSequenz(0, &ba[0], 0, 1, &bb[0], 0, 0, delta, sample_count); + drv.delay(10); + drv.discard(); + drv.delay(10); + + for(uint16_t k = 0; k < sample_count+1; k++) + { + uint16_t i_d = ba[k] - bb[k]; + uint16_t u_ds = bb[k]; + pf.addDot(Dot(u_ds, i_d, curve)); + } + + curve++; + } +} + +void kennlinieZweiterQuadrant() +{ + B15F& drv = B15F::getInstance(); + + uint16_t ba[1024]; + uint16_t bb[1024]; + + const uint16_t sample_count = 1000; + const uint16_t delta = 1; + + const uint16_t u_gs_start = 300; + const uint16_t u_gs_delta = 25; + const uint16_t u_gs_end = 700; + + pf.setQuadrant(2); + pf.setUnitX("V"); + pf.setUnitY("mA"); + pf.setUnitPara("V"); + pf.setDescX("U_{GS}"); + pf.setDescY("I_D"); + pf.setDescPara("U_{DS}"); + pf.setRefX(5); + pf.setRefY(50); + pf.setParaFirstCurve(u_gs_start); + pf.setParaStepWidth(u_gs_delta); + + uint8_t curve = 0; + for(uint16_t u_gs = u_gs_start; u_gs <= u_gs_end; u_gs += u_gs_delta) + { + drv.analogeAusgabe1(u_gs); + + drv.analogEingabeSequenz(0, &ba[0], 0, 1, &bb[0], 0, 0, delta, sample_count); + drv.delay(10); + drv.discard(); + drv.delay(10); + + curve = 0; + for(uint16_t k = 0; k < sample_count + 1; k++) + { + if(ba[k] > bb[k] && bb[k] % 50 == 0 && bb[k] > 0) + { + uint16_t i_d = ba[k] - bb[k]; + pf.addDot(Dot(u_gs, i_d, bb[k] / 50)); + } + curve++; + } + std::cout << "u_gs: " << u_gs << std::endl; + } +} + int main() { B15F& drv = B15F::getInstance(); drv.init(); - /* - while(1) - { - for(uint16_t i = 0; i < 1024; i++) - { - drv.analogeAusgabe0(drv.analogeEingabe(5)); - //drv.delay(10); - //drv.digitaleAusgabe0(drv.digitaleEingabe0()); - } - }*/ - - uint16_t ba[1024]; - uint16_t bb[1024]; - drv.analogEingabeSequenz(1, &ba[0], 0, 0, &bb[0], 0, 1023, -1, 1023); - - PlottyFile pf; - pf.setUnitX("t"); - pf.setUnitY("V"); - pf.setDescX("Zeit"); - pf.setDescY("Spannung"); - - for(uint16_t i = 0; i < 1023; i++) - { - pf.addDot(Dot(i,i, 0)); - pf.addDot(Dot(i,i/2, 1)); - } - pf.writeToFile("test_plot"); + kennlinieZweiterQuadrant(); + // speichern und plotty starten + pf.writeToFile("test_plot"); int code = system("./plotty --in test_plot"); if(code) - { - std::cout << "plotty konnte nicht gestarted werden" << std::endl; - } + std::cout << "Fehler beim plotty Aufruf" << std::endl; std::cout << "Schluss." << std::endl; } diff --git a/main.o b/main.o index 784978387414586fd98aefac2493fb10a2db0b3a..7ba2d8f7be0b3913bdb5fcc0fa01a22a4b5fa773 100644 GIT binary patch literal 13232 zcmdU#e{fsHoxoR;jg=52hq!l6fQym{>TpE0Y$tI@pq4E;&y7NTk<;*_;UP;;wt_7g z=_#?3KogWOD8|6`=#@@8Q|=gUm`-n|*8&NFgpd&D(z)Jo3|!#aa$GyTl1TyqdK|-1 zeBbZBUHR*k9uzKr+ZiZxYw!tz?G8ssO$hG9J& zyR+PChzDD1`@Ie_XgNxG7ls+@^zLt4-R0fiu%>i6TKcb^;tA){cfI>x;=a85P522-#|ESkyok#X3aP8A(O>(84-BUk>>IzR5k2{JGcti2`v%Gu5Q&UsgxRoJE zt<_4I!gbp27ciM_*&O)gTHtTM*4AW)xU}Hua(~B{?GjK%+JrfcIMQX zSFD&8?tUt9!J%DE$68m(w3DB8B^*1dA`ytNd2GAS30v?n0(!d z`I_`E2pzgcO~s02tfNnxl-^1G^J(w?lj)N?U>bS; z^xTOxrHM7qIi^ypJ}w+h?S0=o1bO|`$}E-qgl_=sb@Wd(V0IJP8-O?rdk~ zSGPx1JCVQ@m!_WM^LRlR#3{kYmhva`xW0#j6}&+oR}j7K20FF-YncO*p6 ztgU)c8wUmR0hn5*tZVP#^JjK_)+vbBfUZA5O6QNwD2-{Q|JKHzYlMNOO%$8(RGvAs z@n=2&W#Dd=ziM%;afbc@i~qgKAGY}83g0mb&hJ%W2TXsx)a?!*5a=hl1kuJMeRZtpti7*}{lZy$e;xa=tMM+q z%rtmcyKwE6sYCR0)IKB8 z+|_h~M{r;_!F#rWFHH+|TJeSUTQ(oFJjghzy%vRwp( zs~wi|zJ282dKeMX@&w1+SBYP02eiIT>y~MoqNx(kM9ty{;{9mFQA(&zaEnR)d4+eW zWiQ=Kxu#qWSU+o46}Y$&t~6>V%kd3wc`B3`vc)wgievi*<`}JaTsEi9{UG!bEYjHJyo51aWuxGIGrwXCmwYVbsV_R6 zhh}@+U%5EsaZ7#2_TDJ>R`*@hx=i{^!i^sZ$albL4PJD5>K|}+dK&L{b$WagHJzTO z`)Wg;=6fy*dD@G0Ydz=0a>xV?*c`C0vNG5pqE zDJ~{Q_slXE<8#jp_^14?GJb2k&#CA+J}E_MK0*MYT_zq>U3!gE*F#MD|0!+Ilj0o;rR@gcf*0XuL>?Ks`2jwUrfe{^z#$o zmy+>``Hu1;9E+UO&r6QHv%stQ$7S|h())5;)WE=~roX|4KVrk*wc#Dm#nt@ZZ^PfP z;UC)Y2I!A!{#V)X%{F|@hCgP*pR(a6ZTKl0{+x}QaqA5i84uhu`fcg zj2}V#Xu*$GP`M%4+{+j7-RU7CygafM*}9myJYkNF7(IzddortUODBy?BvGN>g6g8) zuXcCGB7J&as52VTK{Gkj%YDu8ALRa9T5mTpnIVYEh~)C7k^8ekJeiAU%&jcEDUdT# z0bL&$9o0vSTt1tL52ej9eQPt;-qsmh-W?1M7-ml?wRbf;mkbro`3 zjVekjgi_2jMmD9B=Aflx4Y=iT7=_sZBUH!_#QTjPDQjuA$|5kVpeSbCQ7|&wBZIx> zmcdxFzQxS*P`RJwNnX^m$U|PYdC9mfp2qAZQP1@G6{td)L{C?%(iqU zsc$gyg<*q1!kh8L?RsMHc0CnO4}onik0s?H-s2n)OI*h2Fa^)~aJrH^j25^!3usa0INf zeK=7-LF-7tw5FF>c6kam2nMYlq4Q9%6|DJ01U}LxSFj>92XonNdVf5rC*paSLvTt& zzr4@e%E~ilx?pfy4mzeUi__lcOT_#bOkKmgpW2K}a_BR64R5>Ip3deW_`K291I>cx z&u7h;!o!^F$$VBHj6-Gk+!Ld5J#HGKFt;=Lvl_hqm=BJRV80)wO}t3(m9mKNLBUaf zG2wR+j%$DE=R1O{ehw1-B}D&4!l|D(1Xumw`Vj@=@xvkOT|hYXbG6{ApUp)7O5!I^ zIQ3Js@$(a+e--g_l5pzhWg990 zUrO|Ewb36W`d1VEtd0H{(Z}y_vc2CT9KWYa{v_czh9#dQ95)Lk|3|{VMEL83Q+;WL;jM)KjBp>}FAI+0E+YI_M1KY0=WO&Fu|Xhs zS`3GbCqOujzejMj-YrCb3GuUwaO&ql8$VAFeLwN@Q^KjAf3@**39NHbu$boW62hsU zR>9SFC5S%F-!a0epFK8yo+bJ;e_tY;`gzU9&wE6l<|(f0QPlWr#Fi2E1I^Qm1y}XI zK=f&zUT&j*715`8dOhJZPveBsJk1eK^KLugG*9;tPW697IL*`d1y|ea5nE^2KQw=r z2#)&r{Y~b@)r7Akyp8y2Cw#SyeizYSMf6R=aj!|%yOZ$Mgg-<08p0<9$M|utMf!1w zjTvk&9dEM;r}I)H;rPpe^m7H_biTs9P!!caJ_{6;YZk8Hx7qMf8$MyfaUTmst@rON zT*05S;R^`&!L{s%#f0NtpyXc^9Qz;l6eY)Jgo2#T+d8LKoE>m2_3t2@J}=o1=w~j` zzmw>P2)|cw)TiV20m9*@xpKX7ore8J$MYjZpZa-BaMbUFL&pC@qCbyt+($%F<2htu z{#6UT%3`0!6DnbL~xut!-Ugy zW`yvdjsF$Ie>c&;j_5A}j&m!@dcv=Odl^q3;ixatmgx$|zCe+`V_-j{eiR|dHbr07 zOV_=$UHcS$`TgO~6)ydMTj4lXP`){?N_)@@S_S(2`<;+vb}o*|0hM? z`dxsrQwr}8`v0!*^@5*PIDEz8@}9zP6#Qd_KP0#t0|b$Ae%-od^A!Gs;8!R-A^4RF ze_8Nmh0FP6wZeZV^dkx{3f`yihXq%^7d$F>O3^cay+ES_Xskvl;B0b5DHRX?(hGGaMZ`O z6iQgM8}+eWQs{hz`u(E7RP@XJ5Xg@WoA3{V0Bj>!=RtXugWa$I>|emvbTV$nS)f0k zXB-4z_lEBM&^>6_9~Ne)MK^xKxE&oBNF;P)G+~UGI@AXnC4pQP-D3d30Bn9w+r!3L z&Mb@wgd0VAJeP})3BavDJ1~?@#D@Z(v^5<_WQT{1474PZHI2a98#XTEyK=&lF{r0< zaoDU24CJy<;s0K|(BHUzP^Civ`M&sLxW{!Qj$0IYwzHS(x;d6QL;D6|_i6Th!j9VG zxRrMD>;r~FhK_Z(Ww+r6$RgPQ>$c*zn9G2puMSZzPrI-Hq(j(a{HQ10HDV#iRd8Va zF1#VKTPhNUmtuIADZWQhRkeRa*oPDYU)j>Sz&zva#{?rH?Nz_{U53ggxT$9UBT>Kn z-B;SE_8Xvp_n%V#ktLReoS(7(F#lz@$o{(n7}l?tv+ZKCknOdDw5+-zFSm`!9h*ZT}B|dEii=lN*&m zq`q}GeJ}ZAP*AP@4{!krBKsNZ$A4K!JIS8`hJE2u+xaQ=g9(?X;IrEEuebhqF{6H* zXVm&}osRW4!$GA{)GyqWi{x{Y=krh^uggks(IxCD!)sNy763A(`Aie`_bLW5{<2>v zuh#!fB5;fk1^XZWog(dJ|5vLU^f)XnQ3RWcBfT5GdvVGkZQ`UfV>AD zwDZC9F?hH{Rz_Ati(S5zamDFhW_e&sBV=5K^^vMqWU{Np2lRk4G)*yEJSWP_h%y9LNu}QMQFuV=2jxiSdJ$C%8g(Gbo|FDIhvg7+L{6!nSy$_u4vV%=Zu_Y$D-R=h@ zBqE)ruVQZ=KMkafolvWl$L(*}w6YMD$S(?twDZ>YW9S%U=cM`djF*Vd*p z{xLkBNOc$T`5+;zd{Z`)F?4?>ok$t}F0j{fhMx3q(Q`>XgOx>A;RwU%?tFI#jJq(X z1A#sO__&%U74sN&4|LzYKri%PYE&X*JgSl`)4j)yD-GNxNxH~XhNeDBN zL&~eliq%VNmDSNB4?znRb9Z0|m~>WMJ&IGP_psIh=*iZ=20%%tDK{!bId-Bokh-gC zc55J}m;-@fC{YfNN~4ksrYn;BCL>gwhc?JKLbHQ72qy*t&mi1s?hAYav~qGFfCE>C zX`r4$T^xK76i{CPMSyV-6gCBtFN11<2g%qBAfpYCabCF4-hm(9fosV`ucg;fpT3%6FUM1K7Q^e%Pe~e2!Z1kpM4K1fGrKDam1j z1>=MP z$MlcO-OqW*?`ir{x%*iU8E_-M*X`cxAwPBRa6#r5licrDkhdm%0n&f1aMJ+nuf;7b zi~O@zb`&y3!M`9_9}LyjEhx}z_{nf%Fw`*Hf-S>OFniaw<;2zJb4{OG;TeXR&n}>pUjJ^a|0#FG z8|t65*n6<1*L%38*?Y7`_MQU$W{vcH7ogHxuF2jIFd;s$yb)hDxT8A_XgCT8S?cvY z=Ece6EVwwz$=^mxF(d-Bzl2Dn^bkp8(gZf{(q)1l+UJZV5xjv+6p6s`Q9>kw-X@Af zrc49@k;rWm@Hil4!1vS6XZ-|N7d$Q@e(V=667llnI4#jz(>RD`Brl}YrR9pmwoL{Dg*v-FQZ`Nl&ucgg|(r2{?C?!0#32=NT5m zgAV*Q2R>YFpclsGC$4*xwZOlpY%C(aN;f0-|K+?(E+c9{w@`#=FmSg9rzDA;HwdbKC(;Fflqq0bS9YS z?Ir5kWpQJHswVpS!r^dThn7z#)Vz^PXS&)GaU&c~q_muBhM*M zuLgY0!`A|Q&BvI+p&0$dXiInNt@Gr~H{3tm))tpns4F7PQCTGrXg7RG+*BhLst>7& zoUR$Vyu7D}^yoc_-mL`UH?+hiHIdq+c53PF3BlB1Fl&?DF;wH@3`0@t>R?Xq4615Z zU!U5m=knQ%)}1!Cs+&W|Z)gtBYYT_FbfY~36=f1Sb!XuX*h@mbE~J5Rwo8V=&^q+E z{&+#pY?D(lV`C~FQa2iT!yZFpUN=^Pmo@TD46E$q?U7sNtyRw_Ze48X?dD^vZ_OGl zVc9TJ_IA(Ll1V6(kzp?jhqvU?hQ1<;Q}gEfCBHRq=sn;#ZZssa1*`&A+I&^b!hF`X z9yOiG>p7#;`jeLfv))>zjNJ~aA*9Oj`DzRoB+gjyt7nqk|FZ+4uFPynXOil2Jzwb2 zvFUN6F`dn;P@~?^4igJHj81$z-b!&bna`>z4eADC*i$qWmRBDveI|35hHZ)54bO+8 zmOLTgGX&f^@2xwkU%{}6&8c3iRG3HSyFyw3qII^bV-z<=m~ zzwUrzTTn3mnegy-(fc*SX9;)$(kRHE4G-s^Mi2y#3iwdFf&UZEAr!>%;rvQ=rl6nC z3izD@F7|T`!%^W~kNcS;;F#q2e1@ZcoEsc(7jV&kOz?xZTh3o2;F#oiLhv(Jz&8uH z=>G}958jfwpFsh~B*%vZKeYn>O#v7Ezb4=~cHGY;0l#0s{~_Qa|85CLAlPprKg4h} z!%t-Hzfr)kjN>hWA6z3GUnSr*0={1G^C>~defsfw=od2xA$321L`vqL|^Mc?s)2{|YZ#9GgGr9h75EDTyq@8>rW*x(k>F>cfJX!zlidFjhND^} z;E<$(+X{XQ`WeqctzS6j^9+`=G{%n)7yPXP1u^lf{%ML@_-9xe)z<`E{09BDfQw(1 z9}4)mID`4EJqG+D9E20u(kY(G>D^ioPBpmCCN)DN!H#^Mz@?9&LHn%`FO0!l7P;sx z9E9tym~9k|=}+W^UJ~p|BvidGq4ydp)DOq0RRi7-RV|m(wlaXah0257*@V^|{CC&S zU?SVoqh}!QOxDnYi0c22%O+KW0xidOl2DP68skt zpC(*8*+)y*<2>MYT>AmTIVjE@$dV2C0y$u*8*lqJ+H@#EUrjd{Rw9Il8^{LwCIsWh zCCk5``8@<L|PXLIDz5TeC)Arl! zhgtj2GCOR41w8il#{k2saIY2R9IK!Hnky7AnA#w$!c)o~e?LIE&r&zuyngN{4<(qk zkAD-hU&bd2^I&g(2JlkjpTf%r$U$b0?Z;nNc>R3*cLIj>+q#eJVF6+Ph{EIM*nUWO z;jxeZMP|?I<9wdy`Z*{l6@N7gkjIJfV?ErC<1Yb*F-f)ty!{{Q2NNpaf;X+-W*;h1 zKlZ)7{@((I^@rdQe^2l--hW)5hXS7F9MscsvX&4#_dVbsW(%MAnLS@e+!c?X z=dVDbRR1fi{lkoi{g3xeZqNI_RNZJ2V#HnSCvd!5-BrRK&ouko0f-!CKS@81!3kn- SKknV7?9Z|Q%WVd>Ecq85n^nvJ diff --git a/test_plot b/test_plot index 6561707f38b33c94f2b2cc80a0bed0576cb45540..abc733e0ffaecaba461e3ba0f55fb8dda80e5a8a 100644 GIT binary patch literal 820 zcmc)EO=}ZT6vpxAPBOuXUSWh0rZUxu%s?PnM93mSkYa)rb>&NTDHgSL;W|hu^&{j< zh|E&OR>6gg=*Eq%gSZnBY^j~@{kLfg`UM>Lan8NxIhTp%Zw;JMf43J_uH0NbI_}>+nmasSUFaRQ2YLOy+xvId9_9Xf<2GbG*oGV*K|`ew z5q%7|&wR?UeKJ#}pid4F=NJhYcSv?9$HGT2B!ief*_(~HAE^{fl|w4Z5j93K;*GIN z9_(0Ue=IjbjD)-TnE%Oi%*#}@nU4FJP6P-u*$4@Db!JU6txRq^Q@N9=)XjJ|*Nm5I z7H4g)7_}f*66Q)H#PkX3xz0D4qt?oGu1&tfUN=`Xm+MSFSLjVN@F!XfCb}0*^Z-lo z)Wd{|B=UShZ#qYp1PQ$Lkqu-s0V?HSh7EX3eM6nlF{q{J^gRo763AW4D?*kMZPW X>TH}!ozIm^&U3uLOT5B5Ht^;T`(~23 literal 8440 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 HAO8CvaknIT