From a4e4d0ef5564af39095f4a1cd641a018fd0a09d1 Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Wed, 27 Mar 2019 10:33:26 +0100 Subject: [PATCH] complex stroke erste version --- B15F.elf | Bin 12816 -> 12996 bytes B15F.hex | 291 ++++++++++++++++++++++++++------------------------- adu.cpp | 3 +- main.cpp | 42 +++----- requests.cpp | 22 ++++ requests.h | 2 + usart.cpp | 2 + usart.h | 1 + 8 files changed, 192 insertions(+), 171 deletions(-) diff --git a/B15F.elf b/B15F.elf index 390edce308a5d651cf85ea41205c28a4000797e6..2b81c449edd106cd2f3f3a7f4d64ec8e7cc82a20 100644 GIT binary patch delta 3637 zcmbVP4Qv!e6rS1LUXOa-wM7s_y#Cn|5wDdtD$#`2A0iSP&{RA?t`rI)iZp79pnDa9 zs3>F2#z9zQwAYK0#Q&OFri^X&SjijTx8NfboE4aA@OKWj6hF~ zur`w2zg(MR3*JS#$tm&$=_TKi@5veR1L-G8@*{arX;4-wwK<*W?9m!Qt3ew;+dw-&dqJ(BPEZeMP+ zrb!XiO+!5!o3=H1wJVUd#nlEZZmA*biYB7|s7G^CKTEJKc9xC}EN>Dzb`Q1x)q`q; zw!2u=ZH4~7N!0xZ4{CZBwZnBtr;x75xPYjH7d2=KhfTx3$WO zGN%<*%ZCFi`$eNql~)8fm%y&4qG5%!hBal5SF7c8I^igxO*ypP9T%2d+xk?}DgK>S zdTU&t+ldYFtyvN?s+=woJgNT>um)GIB4TPzXliuK1*F&`5xWd%P= zEpEQSsa~x{-h{hEh^NXgHiu|SbBAXaD5vP?n6ENuvUT`aL&L|qmZpz*6Me^YJ6(Qv zm^*U*mlKbU{mMm$gm=;7zGy1aAL)uDB5jeK5s!*ed9~+=2>;g`Y5P!LP~1me+%iiiF)x)r!8|B;B*f+VGpW++x>uPO zY&pGNui#LeRXM%USQJfJPNy44G_)*L8i*f>N0ax=81?EHdX6P8NvU)BgJ%qhBrF!c z3Q49;;J0sBCXoT~XKh%l|JxQcui*l=K^2sSfAv;Qz^NU%+2J=!e9mz z2JzfpWa1$3fI`R|6EEWqSWBK?wTImT=`>hfU~0V#d>m;kHt`L^LO9E z$AI6)Ltg~}Px~8SyZ=E4{)0ko2LcwD2DvcKWwZ1BwabxgxhcH{()q(-lBt`y7F_Yc zt93i@t?)7qn1@~BSYHKfPkS9-XPx<@7hGamybQ@6mG2|qbD%17{af(% z41NSo7b2O;kO^sJl?8s9%W4b!m8X#{RE+FqV$E(_=u-S!vx}2@ToXetxezgacc+-qC6W*=CvzZ5M z&%WM)8@Rq{la0=Q2K)^;JKmVtl0;qr_P~EJFh8refE!SnDia@3i29eq`V0#8^7Q}@ zpbAzwe+E7RW8UdJfP#LNXc&n1s7$hfWA1bhj{&xCAP=}4$Fm&zJfX`oRD7Ed6q$l+ zp}ZC=!5jx(!1a+7AG`vO0>5P2am=CL44g&7NR^Nr%q^-z;SC4g54;IvT@Hu9 z--Uo4IN&?@6xeDY{*|5ro{w@_>qCxp8P!ZphcO1!2G`sA1H`QDj_%qCj}7jecS0g&`+^f7;VhQl;bu%gP&8RW7c(p|7jV9YR_IEn$p50W-0=Z~y=R delta 3387 zcmc(idu$X%9LHyN_u4BS+iMGYO7YrWY4On~v%~I?d`-5F)f3XVXex+PV$)!rMa<4K-@hJn9VajkZi4Tyj z-Vk$nAbRwCXF_Q!Zn?=-ZHjVaxQHt3%)^Pb2^uAt(F>!uMwf;8a{W0{T9$}Mp;RHiskxhP z?F1^&sFN=RHzrmkO&x@g+uDRS) zqC=b&SNWa6`HhB--9qGcEkt$Kb`vv_mh1l-#LU~UFg&x0NM9Z@A!IV*3mTbFHC5Cp zgC0Q~3 zT~JUZTX&+*Imt&=$(b-ogDe@rQJ9v*v@G{6SQNW6HYY-Er3dn;-B%_phON=Es;y?e z`kl?(Sa!X8ig906?XXOV+%2C#yFDuZh{smB6RnVsqK(Oi z&@Pq_pj{-lqm9UW(Vmf8JB;_y->fzy;$7n#PdXGCXK+ zJ_avEDr!yM1-9=^yTYQ(o~}+PbYaz2`jX)Nm`o>|9Q1%C{0^hyWwL(CPr~6kFgfHn zzxD-q!1>sYdUMD;|{I^+cPj9yur5Or4Icy;C?)YP#McZ zyVfzjDe4ex0dGXLUIyQwKOd|1m=W&9WRuc8qs})1xsNg%)@nTnPOM zV9MB#9He^*Qu2-|D5UiB7>H8LSpa-QG?WdBK8Bt>xle-^+SWeRG5$Sxzj>33uzB_1 z6-dNbSSHuYzzRHBxmgKbk80h+kI?U*8JF0nqJOzR`X$81FK-Gkm2L-HZs?30A`@5; z6}nO<9DEM^8Zyui;}pgX@RNw4*5m|fj5&Fb`adNqh@HWvZLj}X^M;f ztwg;PUb9u}{L%B7|pu_06@b>@iHP?>8+9%J{3y`cip p8}dr;`-ECqCT;PFhwxYt6w@oqT#pXImW$Pu0oPaMjGZFoe*k&RInDq8 diff --git a/B15F.hex b/B15F.hex index c92ba99..1bff614 100644 --- a/B15F.hex +++ b/B15F.hex @@ -1,143 +1,152 @@ -:100000000C945D000C9487000C9487000C9487007E -:100010000C9487000C9487000C9487000C94870044 -:100020000C9487000C9487000C9487000C94870034 -:100030000C9487000C9487000C9487000C94870024 -:100040000C9487000C9487000C9487000C94870014 -:100050000C9487000C9487000C9487000C94870004 -:100060000C9487000C9487000C9487000C948700F4 -:100070000C9487000C9487000C9487000C948700E4 -:100080000C9487000C9487000C948700E700E9002B -:10009000EB00E200ED00EF00F100F300F500F700E7 -:1000A000F9002D042A042704F103240421041E046A -:1000B0001B04180415043004330411241FBECFEFB1 -:1000C000D0E4DEBFCDBF11E0A0E0B1E0EAECF8E0A3 -:1000D00000E00BBF02C007900D92A230B107D9F724 -:1000E00021E0A2E0B1E001C01D92A431B207E1F726 -:1000F00010E0CDE5D0E004C02197FE010E945A0433 -:10010000CC35D107C9F70E94EC030C9463040C941E -:100110000000109260000FB6F894A89580916000DE -:10012000886180936000109260000FBE83E191E0CF -:100130000E94FC0060E080E191E00E943F016FEFCF -:1001400080E191E00E94600160E08DE091E00E941A -:100150003F016FEF8DE091E00E9460016FEF8AE058 -:1001600091E00E94600183E091E00E94350282E00C -:1001700091E00E942D03789408950FB6F894A89505 -:1001800080916000886180936000109260000FBED3 -:1001900082E091E00E944903E82F98E088E10FB6E1 -:1001A000F894A895809360000FBE9093600080E45F -:1001B00080936000A8958E2F90E0FC013197EB3082 -:1001C000F10508F00895EA5BFF4F0C945A040C9473 -:1001D00061030C9472030C9473030C9480030C94CD -:1001E00093030C94A6030C94AF030C94B8030C94E3 -:1001F000CB030C94DE03089584B1806B84B92698F8 -:100200008AB18C618AB980E58CBD81E08DBD8BB1EE -:10021000837E8BB95A9A5B9A5C9A08958BB1837EE0 -:100220008BB98BB160FD10C090E0892B8BB98BB17D -:1002300061FD10C090E0892B8BB98BB162FD10C0BD -:1002400090E0892B8BB9089594E0892B8BB98BB101 -:1002500061FFF0CF98E0892B8BB98BB162FFF0CFB3 -:1002600090E1892B8BB908956EBD0DB407FEFDCFCB -:100270008EB50895FC0171836083428308951F93B6 -:10028000CF93DF93EC01162F6A81888199810E94B8 -:100290000E0160E4888199810E94340160E08881C8 -:1002A00099810E943401612F888199810E943401D3 -:1002B00067E088819981DF91CF911F910C940E01A5 -:1002C0001F93CF93DF93EC01162F6A818881998168 -:1002D0000E940E0160E4888199810E94340161E0EE -:1002E000888199810E943401612F888199810E94BF -:1002F000340167E088819981DF91CF911F910C943F -:100300000E011F93CF93DF93EC01162F6A81888132 -:1003100099810E940E0160E4888199810E943401D4 -:1003200062E1888199810E943401612F88819981DD -:100330000E94340167E088819981DF91CF911F91FC -:100340000C940E011F93CF93DF93EC01162F6A815B -:10035000888199810E940E0160E4888199810E94C0 -:10036000340163E1888199810E943401612F888181 -:1003700099810E94340167E088819981DF91CF9152 -:100380001F910C940E011F93CF93DF93EC016A81B0 -:10039000888199810E940E0161E4888199810E947F -:1003A000340162E1888199810E94340160E0888192 -:1003B00099810E943401182F67E0888199810E94F9 -:1003C0000E01812FDF91CF911F9108951F93CF933D -:1003D000DF93EC016A81888199810E940E0161E4BA -:1003E000888199810E94340163E1888199810E940A -:1003F000340160E0888199810E943401182F67E000 -:10040000888199810E940E01812FDF91CF911F91E8 -:100410000895FC01428308950F931F93CF93DF93B8 -:10042000EC018B016A81888199810E940E01B801DB -:100430000024660F771F001C660F771F001C672FB4 -:10044000702D888199810E943401602F660F660F9C -:10045000888199810E94340167E088819981DF91C8 -:10046000CF911F910F910C940E0110927C0087E8A0 -:1004700080937A00089580917C00807E682B609341 -:100480007C0080917A00806480937A0083EA91E016 -:100490000197F1F700C0000080917A0086FDFCCF43 -:1004A000809178009091790008950F931F93CF93D6 -:1004B000DF9361E080E191E00E948101C1E0D0E042 -:1004C00001E010E02FEF84E39CE021508040904059 -:1004D000E1F700C00000B8010C2E01C0660F0A94BD -:1004E000EAF780E191E00E9481012196C930D105AF -:1004F00049F7DF91CF911F910F9108950F931F93AB -:10050000CF93DF9361E08DE091E00E948101C1E033 -:10051000D0E001E010E02FEF84E39CE02150804028 -:100520009040E1F700C00000B8010C2E01C0660F3A -:100530000A94EAF78DE091E00E9481012196C9308A -:10054000D10549F7DF91CF911F910F910895CF9376 -:10055000DF93C0E0D0E0BE0187E091E00E940C0292 -:1005600087E893E10197F1F700C000002196C115DB -:1005700094E0D90781F72FE78AE196E02150804087 -:100580009040E1F700C0000060E070E087E091E09B -:10059000DF91CF910C940C02CF93DF93C0E0D0E0B9 -:1005A000BE0184E091E00E940C0287E893E101978C -:1005B000F1F700C000002196C11594E0D90781F73A -:1005C0002FE78AE196E0215080409040E1F700C09B -:1005D000000060E070E084E091E0DF91CF910C9446 -:1005E0000C020FB6F894A895809160008861809302 -:1005F0006000109260000FBE60E083E091E00E9416 -:100600003B02BC0187E091E00E940C0261E083E0C4 -:1006100091E00E943B02BC0184E091E00E940C0248 -:1006200080E191E00E94E601682F80E191E00E9464 -:1006300081018AE091E00E94E601682F8DE091E05F -:100640000E948101D9CF0E9455020E947E020E9421 -:10065000A7020E94CC020E94F10288E18093C100AF -:1006600086E08093C2001092C5008FE18093C400A1 -:1006700008956093C6008091C00086FFFCCF089566 +:100000000C945F000C9489000C9489000C94890076 +:100010000C9489000C9489000C9489000C9489003C +:100020000C948B000C9489000C9489000C9489002A +:100030000C9489000C9489000C9489000C9489001C +:100040000C9489000C9489000C9489000C9489000C +:100050000C9489000C9489000C9489000C948900FC +:100060000C9489000C9489000C9489000C948900EC +:100070000C9489000C9489000C9489000C948900DC +:100080000C9489000C9489000C948900DF00E10035 +:10009000E300DA00E500E700E900EB00ED00EF0027 +:1000A000F100F300750472046F044B046C046904DE +:1000B0006604630460045D045A0478047B0411241C +:1000C0001FBECFEFD0E4DEBFCDBF11E0A0E0B1E0B6 +:1000D000EAE5F9E000E00BBF02C007900D92A23004 +:1000E000B107D9F721E0A2E0B1E001C01D92A4312F +:1000F000B207E1F710E0CFE5D0E004C02197FE01A0 +:100100000E94A204CE35D107C9F70E9449040C947D +:10011000AB040C9400001F920F920FB60F921124A3 +:100120008F9388E4809360008F910F900FBE0F90A3 +:100130001F90189583E191E00E94F60060E080E155 +:1001400091E00E9439016FEF80E191E00E945A0135 +:1001500060E08DE091E00E9439016FEF8DE091E069 +:100160000E945A016FEF8AE091E00E945A0183E0F9 +:1001700091E00E942F0282E091E00E942703789490 +:1001800098E088E10FB6F894A895809360000FBEC0 +:100190009093600088E480936000A895089582E0C1 +:1001A00091E00E944F03A89590E0FC013197EC305C +:1001B000F10508F00895EA5BFF4F0C94A2040C943B +:1001C00067030C9478030C9479030C9486030C94C5 +:1001D00099030C94AC030C94B5030C94BE030C94DB +:1001E000D1030C94E4030C94F203089584B1806B62 +:1001F00084B926988AB18C618AB980E58CBD81E08A +:100200008DBD8BB1837E8BB95A9A5B9A5C9A0895A7 +:100210008BB1837E8BB98BB160FD10C090E0892BD0 +:100220008BB98BB161FD10C090E0892B8BB98BB17C +:1002300062FD10C090E0892B8BB9089594E0892B62 +:100240008BB98BB161FFF0CF98E0892B8BB98BB163 +:1002500062FFF0CF90E1892B8BB908956EBD0DB48C +:1002600007FEFDCF8EB50895FC0171836083428344 +:1002700008951F93CF93DF93EC01162F6A81888135 +:1002800099810E94080160E4888199810E942E0171 +:1002900060E0888199810E942E01612F8881998177 +:1002A0000E942E0167E088819981DF91CF911F9193 +:1002B0000C9408011F93CF93DF93EC01162F6A81F2 +:1002C000888199810E94080160E4888199810E9457 +:1002D0002E0161E0888199810E942E01612F888121 +:1002E00099810E942E0167E088819981DF91CF91E9 +:1002F0001F910C9408011F93CF93DF93EC01162FED +:100300006A81888199810E94080160E488819981CD +:100310000E942E0162E1888199810E942E01612F45 +:10032000888199810E942E0167E088819981DF91FF +:10033000CF911F910C9408011F93CF93DF93EC0191 +:10034000162F6A81888199810E94080160E4888162 +:1003500099810E942E0163E1888199810E942E017A +:10036000612F888199810E942E0167E0888199819F +:10037000DF91CF911F910C9408011F93CF93DF93CE +:10038000EC016A81888199810E94080161E4888179 +:1003900099810E942E0162E1888199810E942E013B +:1003A00060E0888199810E942E01182F67E0888182 +:1003B00099810E940801812FDF91CF911F910895AB +:1003C0001F93CF93DF93EC016A81888199810E940A +:1003D000080161E4888199810E942E0163E188818E +:1003E00099810E942E0160E0888199810E942E01EE +:1003F000182F67E0888199810E940801812FDF9181 +:10040000CF911F910895FC01428308950F931F938C +:10041000CF93DF93EC018B016A81888199810E94DF +:100420000801B8010024660F771F001C660F771FB4 +:10043000001C672F702D888199810E942E01602FEA +:10044000660F660F888199810E942E0167E088817E +:100450009981DF91CF911F910F910C940801109217 +:100460007C0087E880937A00089580917C00807EEC +:10047000682B60937C0080917A00806480937A007E +:1004800083EA91E00197F1F700C0000080917A00C3 +:1004900086FDFCCF809178009091790008950F93AC +:1004A0001F93CF93DF9361E080E191E00E947B0195 +:1004B000C1E0D0E001E010E02FEF84E39CE02150A8 +:1004C00080409040E1F700C00000B8010C2E01C050 +:1004D000660F0A94EAF780E191E00E947B01219681 +:1004E000C930D10549F7DF91CF911F910F91089540 +:1004F0000F931F93CF93DF9361E08DE091E00E9413 +:100500007B01C1E0D0E001E010E02FEF84E39CE04C +:10051000215080409040E1F700C00000B8010C2E4F +:1005200001C0660F0A94EAF78DE091E00E947B011A +:100530002196C930D10549F7DF91CF911F910F91D5 +:100540000895CF93DF93C0E0D0E0BE0187E091E053 +:100550000E94060287E893E10197F1F700C00000CE +:100560002196C11594E0D90781F72FE78AE196E03B +:10057000215080409040E1F700C0000060E070E052 +:1005800087E091E0DF91CF910C940602CF93DF9347 +:10059000C0E0D0E0BE0184E091E00E94060287E85E +:1005A00093E10197F1F700C000002196C11594E096 +:1005B000D90781F72FE78AE196E0215080409040EB +:1005C000E1F700C0000060E070E084E091E0DF91BE +:1005D000CF910C9406020FB6F894A8958091600014 +:1005E000886180936000109260000FBE60E083E03D +:1005F00091E00E943502BC0187E091E00E94060272 +:1006000061E083E091E00E943502BC0184E091E06A +:100610000E94060280E191E00E94E001682F80E1E3 +:1006200091E00E947B018AE091E00E94E001682F46 +:100630008DE091E00E947B01D9CF0E944F020E9481 +:1006400078020E94A1020E94C6020E94EB0288E189 +:100650008093C10086E08093C2001092C5008FE1B4 +:100660008093C40008956093C6008091C00086FF07 +:10067000FCCF83EF91E00197F1F700C000000895EF :100680006093C6007093C6008091C00086FFFCCFC7 -:1006900008958091C00087FFFCCF8091C600089527 -:1006A0008091C00087FFFCCF2091C60030E0909180 -:1006B000C00097FFFCCF8091C600A901582BCA014A -:1006C0000895CF9382E091E00E944903C82F6FEF15 -:1006D00082E091E00E9439036C2F82E091E0CF919B -:1006E0000C943903089582E091E00E945003BC010C -:1006F000660F771F680F791F82E091E00C9440032A -:1007000082E091E00E944903682F80E191E00E941D -:10071000810180910001811101C008956FEF82E095 -:1007200091E00C94390382E091E00E944903682F24 -:100730008DE091E00E94810180910001811101C052 -:1007400008956FEF82E091E00C94390380E191E02D -:100750000E94E601682F82E091E00C9439038DE05D -:1007600091E00E94E601682F82E091E00C94390349 -:1007700082E091E00E945003BC0187E091E00E947A -:100780000C0280910001811101C008956FEF82E099 -:1007900091E00C94390382E091E00E945003BC0187 -:1007A00084E091E00E940C0280910001811101C05F -:1007B00008956FEF82E091E00C94390382E091E0BC -:1007C0000E944903682F83E091E00E943B02BC0134 -:1007D00082E091E00C9440030E94890018E1D8E087 -:1007E000C0E40FB6F894A89580916000886180936A -:1007F0006000109260000FBE82E091E00E94490309 -:100800000FB6F894A895109360000FBED0936000C7 -:10081000C0936000A89590E0FC013197EB30F105A2 -:1008200000F7EF5AFF4F0C945A040E94CB03D9CF24 -:100830000E94B803D6CF0E94AF03D3CF0E94A60375 -:10084000D0CF0E949303CDCF0E948003CACF0E94D5 -:100850007303C7CF0E947203C4CF0E946103C1CF4C -:100860000E94DE03BECF83E191E00E94FB0042E0E4 -:1008700063E171E080E191E00E943A0143E063E1CD -:1008800071E08DE091E00E943A0145E063E171E0A2 -:100890008AE091E00E943A0140E063E171E087E084 -:1008A00091E00E94090241E063E171E084E091E09F -:1008B0000C940902EE0FFF1F0024001C0BBE0790D2 -:0A08C000F691E02D0994F894FFCFA3 -:0208CA0001002B +:1006900087E893E10197F1F700C000000895809189 +:1006A000C00087FFFCCF8091C60008958091C000F4 +:1006B00087FFFCCF2091C60030E09091C00097FFEB +:1006C000FCCF8091C600A901582BCA010895CF9391 +:1006D00082E091E00E944F03C82F6FEF82E091E02B +:1006E0000E9433036C2F82E091E0CF910C9433038E +:1006F000089582E091E00E945603BC01660F771FC7 +:10070000680F791F82E091E00C94400382E091E051 +:100710000E944F03682F80E191E00E947B0180914D +:100720000001811101C008956FEF82E091E00C9407 +:10073000330382E091E00E944F03682F8DE091E047 +:100740000E947B0180910001811101C008956FEF2B +:1007500082E091E00C94330380E191E00E94E0019B +:10076000682F82E091E00C9433038DE091E00E94C9 +:10077000E001682F82E091E00C94330382E091E085 +:100780000E945603BC0187E091E00E94060280911E +:100790000001811101C008956FEF82E091E00C9497 +:1007A000330382E091E00E945603BC0184E091E0B3 +:1007B0000E94060280910001811101C008956FEF2F +:1007C00082E091E00C94330382E091E00E944F03B9 +:1007D000682F83E091E00E943502BC0182E091E045 +:1007E0000C944003AF92BF92CF92DF92EF92FF92B0 +:1007F0000F931F93CF93DF9382E091E00E94560303 +:10080000EC0182E091E00E9456035C0182E091E0FD +:100810000E9456038C016FEF82E091E00E94330347 +:10082000A09E6001A19ED00CB09ED00C1124CC15CE +:10083000DD0501F1BE0187E091E00E94060260E063 +:1008400083E091E00E9435027C0161E083E091E069 +:100850000E9435028C01B70182E091E00E944003C2 +:10086000B80182E091E00E944003CA0DDB1DCC1666 +:10087000DD0601F76FEF82E091E0DF91CF911F91EC +:100880000F91FF90EF90DF90CF90BF90AF900C94BE +:1008900033030E949A0082E091E00E944F03A895E2 +:1008A00090E0FC013197EC30F105A8F7EE5AFF4FCC +:1008B0000C94A2040E94E403EECF0E94D103EBCF7C +:1008C0000E94BE03E8CF0E94B503E5CF0E94AC03AF +:1008D000E2CF0E949903DFCF0E948603DCCF0E9403 +:1008E0007903D9CF0E947803D6CF0E946703D3CF74 +:1008F0000E94F203D0CF83E191E00E94F50042E034 +:1009000063E171E080E191E00E94340143E063E142 +:1009100071E08DE091E00E94340145E063E171E017 +:100920008AE091E00E94340140E063E171E087E0F9 +:1009300091E00E94030241E063E171E084E091E014 +:100940000C940302EE0FFF1F0024001C0BBE079047 +:0A095000F691E02D0994F894FFCF12 +:02095A0001009A :00000001FF diff --git a/adu.cpp b/adu.cpp index 7038168..adabec2 100644 --- a/adu.cpp +++ b/adu.cpp @@ -22,7 +22,6 @@ uint16_t ADU::getValue(uint8_t channel) // warte auf Ende while(ADCSRA & _BV(ADSC)); - - // liefere Ergebnis + return ADCW; } diff --git a/main.cpp b/main.cpp index c583d18..036cf89 100644 --- a/main.cpp +++ b/main.cpp @@ -9,18 +9,14 @@ #define WDT_TIMEOUT WDTO_15MS -/* + ISR(WDT_vect) { - WDTCSR |= _BV(WDIE); -}*/ + WDTCSR = _BV(WDIE) | _BV(WDE); +} void initAll() { - // deaktiviere WDT, da er bei Neustart erhalten bleiben kann - WDTCSR = 0; - wdt_disable(); - spi.init(); beba0.setDirA(0x00); // alle Ausgang @@ -34,18 +30,16 @@ void initAll() // aktiviere Interrupts sei(); -} - -void handleRequest() -{ - // stoppe WDT - wdt_disable(); - - const uint8_t req = usart.readByte(); // starte WDT wdt_enable(WDT_TIMEOUT); - WDTCSR = _BV(WDIE); + WDTCSR = _BV(WDIE) | _BV(WDE); + wdt_reset(); +} + +void handleRequest() +{ + const uint8_t req = usart.readByte(); wdt_reset(); switch(req) @@ -92,6 +86,10 @@ void handleRequest() case RQ_ADC: rqAnalogRead(); break; + + case RQ_ADC_DAC_STROKE: + rqAdcDacStroke(); + break; default: break; @@ -103,18 +101,6 @@ int main() initAll(); - - // DEBUGGING, spaeter entfernen! - /* - for(int i = 0; i < 3; i++) - { - beba0.writePortA(0xFF); - _delay_ms(100); - beba0.writePortA(0x00); - _delay_ms(100); - wdt_reset(); - }*/ - while(1) { handleRequest(); diff --git a/requests.cpp b/requests.cpp index 3d483a7..dbd2a2a 100644 --- a/requests.cpp +++ b/requests.cpp @@ -71,3 +71,25 @@ void rqAnalogRead() uint16_t value = adu.getValue(channel); usart.writeInt(value); } + +void rqAdcDacStroke() +{ + int16_t start = static_cast(usart.readInt()); + int16_t delta = static_cast(usart.readInt()); + int16_t count = static_cast(usart.readInt()); + + usart.writeByte(USART::MSG_OK); + + count *= delta; + + for(int16_t i = start; i != count; i += delta) + { + dac0.setValue(i); + uint16_t a = adu.getValue(0); + uint16_t b = adu.getValue(1); + usart.writeInt(a); + usart.writeInt(b); + } + + usart.writeByte(USART::MSG_OK); +} diff --git a/requests.h b/requests.h index 00f1324..d19c305 100644 --- a/requests.h +++ b/requests.h @@ -14,6 +14,7 @@ constexpr static uint8_t RQ_BE1 = 8; constexpr static uint8_t RQ_AA0 = 9; constexpr static uint8_t RQ_AA1 = 10; constexpr static uint8_t RQ_ADC = 11; +constexpr static uint8_t RQ_ADC_DAC_STROKE = 12; void rqTestConnection(void); void rqBoardInfo(void); @@ -26,5 +27,6 @@ void rqDigitalRead1(void); void rqAnalogWrite0(void); void rqAnalogWrite1(void); void rqAnalogRead(void); +void rqAdcDacStroke(void); #endif // REQUESTS_H diff --git a/usart.cpp b/usart.cpp index 4ef8f5b..5ed1170 100644 --- a/usart.cpp +++ b/usart.cpp @@ -17,6 +17,7 @@ void USART::writeByte(uint8_t b) { UDR0 = b; while(!(UCSR0A & _BV(TXC0))); + _delay_us(100); } @@ -26,6 +27,7 @@ void USART::writeInt(uint16_t v) v >>= 8; UDR0 = v & 0xFF; while(!(UCSR0A & _BV(TXC0))); + _delay_ms(1); } uint8_t USART::readByte() diff --git a/usart.h b/usart.h index 6a7cf29..7aca473 100644 --- a/usart.h +++ b/usart.h @@ -2,6 +2,7 @@ #define USART_H #include +#include #include constexpr uint16_t BAUDRATE = 38400UL; //9600UL//9600