From b7b3fa6327edc7f432892621b51d4da05252d16d Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Mon, 25 Mar 2019 16:15:00 +0100 Subject: [PATCH] selbsttest funktion hinzugefuegt --- B15F.aps | 2 +- B15F.elf | Bin 10152 -> 11112 bytes B15F.hex | 139 +++++++++++++++++++++++++++++++-------------------- Makefile | 2 +- b15f.aws | 2 +- main.cpp | 39 +++++++-------- selftest.cpp | 49 ++++++++++++++++++ selftest.h | 12 +++++ vars.cpp | 9 ++++ vars.h | 16 ++++++ 10 files changed, 193 insertions(+), 77 deletions(-) create mode 100644 selftest.cpp create mode 100644 selftest.h create mode 100644 vars.cpp create mode 100644 vars.h diff --git a/B15F.aps b/B15F.aps index 1790901..e1c2651 100644 --- a/B15F.aps +++ b/B15F.aps @@ -1 +1 @@ -B15F22-Mar-2019 14:29:5425-Mar-2019 12:57:42241022-Mar-2019 14:29:5444, 19, 0, 730AVR GCCB15F.elfF:\JTAGICE mkIIATmega1284.xmlfalseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto000spi.cppmain.cppMakefilemcp23s17.cppspi.hmcp23s17.hdefault\B15F.lssdefault\B15F.mapc++NOatmega128111B15F.elfc++\0-Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enumsdefaultYESMakefileatmega1284111B15F.elfdefault\1C:\avr8-gnu-toolchain-win32_x86\avr\include\C:\avr8-gnu-toolchain-win32_x86\avr\lib\libc.a-Wall -gdwarf-2 -DF_CPU=20000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enumsdefault0C:\avr8-gnu-toolchain-win32_x86\bin\avr-g++.exeC:\WinAVR-20100110\utils\bin\make.exeF:\spi.hF:\mcp23s17.hF:\spi.cppF:\main.cppF:\MakefileF:\mcp23s17.cpp00000main.cpp100001Makefile100002spi.h100003spi.cpp100004mcp23s17.h100005mcp23s17.cpp1 +B15F22-Mar-2019 14:29:5425-Mar-2019 16:14:23241022-Mar-2019 14:29:5444, 19, 0, 730AVR GCCB15F.elfF:\JTAGICE mkIIATmega1284.xmlfalseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto000spi.cppmain.cppMakefilemcp23s17.cppTLC5615.cppadu.cppselftest.cppvars.cppspi.hmcp23s17.hTLC5615.hadu.hselftest.hvars.hdefault\B15F.lssdefault\B15F.mapc++NOatmega128111B15F.elfc++\0-Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enumsdefaultYESMakefileatmega1284111B15F.elfdefault\0C:\avr8-gnu-toolchain-win32_x86\avr\include\C:\avr8-gnu-toolchain-win32_x86\avr\lib\libc.a-Wall -gdwarf-2 -DF_CPU=20000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enumsdefault0C:\avr8-gnu-toolchain-win32_x86\bin\avr-g++.exeC:\WinAVR-20100110\utils\bin\make.exe00000main.cpp100001Makefile100002selftest.h100003selftest.cpp100004vars.h1 diff --git a/B15F.elf b/B15F.elf index 2832be0f1c4fcb5597b42c1102d9fc824186ff59..a45fc7bd4d740ce2fa5166a18ebf7fdda83c1010 100644 GIT binary patch delta 3288 zcmbW4Yitx%6vxj@x7)HUyW2_ujbK3Akbh$ZPe|yv{Rv@@Ml-KjpRSKm^3c8)fW>9bMD_D#z4*(g@KG}$P1Vk}IZmPATw zP)<_)^*xDq6Yf+$wwbed*qm+DWLJ|zNnf%sb&`ByNL&?vNHfEm61tAnLi~O$D4J`l ziH5Z4`u_&ecpny&>|4Yq^N71*<8D^6Vcf%tXwUIIagx52 zsI1xZx{n^#pBuw%3(Pdshnqdk9+Rx+;o%bzLpjxoN9d8njbbQ}&ZxtxqxM{62gfzHfu1uZDfMz*BBSdh?x~|E*ptlfp318!Q+c<$ znKa^`Vzx|eGh34um2UnhrthbgMor?(hKeU_G~ zk2C7gouwLWQUBP_Qk6#ffe5KuBX(Mt5~ADjq(mo19A}C}`K(r{R?MHZS$aWxwrI~S z+H)5_l`h;|eYp14V3hIGi_vTj8lUI`IQZJrnoP&cDMnuJ$N2H2Os4NK=RJCp=@(4C zHOLS9k zbvUFK!Eb8Xtgpzl6#~Bdxp|?m1Nfm=9XTaHrWtxWHP*(jJ;F;)Vz!BT}Qt+fh_*(;h8^Lf>IN~}8 ziV!h3FCyMxGtdUcVQY<3+y#yzC>C>ugiZfL8-EHm9dZpE2ZxXmBwf)A4B9sQ0CpfC z=x8bY30w{^Yv86$|8E=TL)V(22f$p|Uhc9?K{iYYbcKZu3TpxuGRw5YW}wEh&Tp{Z zwjQ_fE39wH*k15WRDChqM*xSw2av%i{A(Hb3(B6p}|LV3490!UB>KZ}5(u*Vtbw&@=R zE5>)IDSTm5_!`W0#Ek>G3`R)&(3mUQ>X0uPYk+4{lLrR--Na*|l(ds>|E z&7ara)Y`nQseRkR#o(j>XzvYly9kwYRm15#Mu>x=L1EUcD^R zL9tjzQ{%SHTVsz^X6F?Yt6Rc4(VA#=MTc1FuW;2ZWJ4fe+C{D z1;N|X7Pq|GqOBb$-RUx|W8;p}Ph3!}poXS~c!da-{WjfVInp8W=M0F!IYn}>Q(T$z zsO)qKXDFD<|2q_k1))-wuM36b3r_I{hQd72hv5UaIFDhlMBKuVE)fsS4aw>}5uF>V k+CG~of+OTQuSQ4ykZhu9=;mQyN=Jf3m2hJ=y>5v91;ds_NdN!< delta 2529 zcmbW3e@It;7)DN7s}L5omayP@wG>CC%~=}==Uy6Q z(yzPsE}JbGxsh99IREGeWBNy|*^Fy2HdxWl;BJjkh$|XV?Dl=$bC2is&_C;y_q@;N zdEWPVp7(j*bFMdcjqiBBSU*-C@%y(G7)0DtiAYD+&?ms8g`^&mY-xD1O||nJZkds{ zh8u5cxn)IXV~Y#%pJ%?GDY1@OQcH$tL~ibpnl zIDUA4bjXTW+0ii0>`f_+Q_rF;%|SXSb#oMwhvPrjBD(EgR zPVj@shk$GGcBu|az?>vE9|AlC=9kssM(`o@W+?Jt-w9b=-?oBHonBHD>~H|gZ!r(K zltLj0kE4kZ1k} z;9KZVC+(AvH6(~4%8E|A^G#xhGp<7N1rJ{Wk6^KnyROr9Fj1Hv&>3`FvP4;te?03~ zapYvP17e9JSS zP!r&9fXaSwBPM5IKJTaw?A!^ygpYu?AYsS;jK>}TCz`MrjW^H*uF%M&HBhj_15h|W zo<7tr1Rh2G9!uIs;oQCD293Zz51aE^o&c)}Uk9&2=T?j(n}Xb`_&wL|KiIxfHopf}1D^1#p8}_A?rZl2_!K + diff --git a/main.cpp b/main.cpp index 3a60a8a..21ebe35 100644 --- a/main.cpp +++ b/main.cpp @@ -2,19 +2,12 @@ #include #include #include -#include "mcp23s17.h" -#include "tlc5615.h" -#include "adu.h" +#include "vars.h" +#include "selftest.h" + #define LED B0 - -SPI spi; -MCP23S17 beba0(spi, SPIADR::BEBA0); -MCP23S17 sw(spi, SPIADR::SWITCH); -TLC5615 dac0(spi, SPIADR::AA0); -ADU adu; - ISR(WDT_vect) { while(1) @@ -27,26 +20,32 @@ ISR(WDT_vect) WDTCSR |= _BV(WDIE); } -int main() +void initAll() { - WDTCSR = _BV(WDIE) | _BV(WDP3) | _BV(WDP0); - dMode(LED, OUT); - dWrite(LED, LOW); - wdt_reset(); - - sei(); - spi.init(); + beba0.setDirA(0x00); // alle Ausgang beba0.setDirB(0xFF); // alle Eingang + beba1.setDirA(0x00); // alle Ausgang + beba1.setDirB(0xFF); // alle Eingang sw.setDirB(0xFF); // alle Eingang adu.init(); +} + +int main() +{ + /*WDTCSR = _BV(WDIE) | _BV(WDP3) | _BV(WDP0); + dMode(LED, OUT); + dWrite(LED, LOW); + wdt_reset(); + sei();*/ + + initAll(); while(1) { - dac0.setValue(adu.getValue(6)); - wdt_reset(); + testAll(); } return 0; diff --git a/selftest.cpp b/selftest.cpp new file mode 100644 index 0000000..f8b532f --- /dev/null +++ b/selftest.cpp @@ -0,0 +1,49 @@ +#include "selftest.h" + +void testAll(void) +{ + testBEBA0(); + testBEBA1(); + testDAC0(); + testDAC1(); +} + +void testBEBA0(void) +{ + for(uint8_t i = 0; i < 9; i++) + { + beba0.writePortA(_BV(i)); + + if(i < 8) + _delay_ms(200); + } +} + +void testBEBA1(void) +{ + for(uint8_t i = 0; i < 9; i++) + { + beba1.writePortA(_BV(i)); + + if(i < 8) + _delay_ms(200); + } +} + +void testDAC0(void) +{ + for(uint16_t i = 0; i < 1024; i++) + { + dac0.setValue(i); + _delay_ms(1); + } +} + +void testDAC1(void) +{ + for(uint16_t i = 0; i < 1024; i++) + { + dac1.setValue(i); + _delay_ms(1); + } +} diff --git a/selftest.h b/selftest.h new file mode 100644 index 0000000..0957a55 --- /dev/null +++ b/selftest.h @@ -0,0 +1,12 @@ +#ifndef SELFTEST_H +#define SELFTEST_H + +#include "vars.h" + +void testAll(void); +void testBEBA0(void); +void testBEBA1(void); +void testDAC0(void); +void testDAC1(void); + +#endif // SELFTEST_H diff --git a/vars.cpp b/vars.cpp new file mode 100644 index 0000000..414a876 --- /dev/null +++ b/vars.cpp @@ -0,0 +1,9 @@ +#include "vars.h" + +SPI spi; +MCP23S17 beba0(spi, SPIADR::BEBA0); +MCP23S17 beba1(spi, SPIADR::BEBA1); +MCP23S17 sw(spi, SPIADR::SWITCH); +TLC5615 dac0(spi, SPIADR::AA0); +TLC5615 dac1(spi, SPIADR::AA1); +ADU adu; diff --git a/vars.h b/vars.h new file mode 100644 index 0000000..6654e2a --- /dev/null +++ b/vars.h @@ -0,0 +1,16 @@ +#ifndef VARS_H +#define VARS_H + +#include "mcp23s17.h" +#include "tlc5615.h" +#include "adu.h" + +extern SPI spi; +extern MCP23S17 beba0; +extern MCP23S17 beba1; +extern MCP23S17 sw; +extern TLC5615 dac0; +extern TLC5615 dac1; +extern ADU adu; + +#endif // VARS_H