From 7eb9573229189a0f9d203998f3fdfefa055de2a4 Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Tue, 26 Mar 2019 16:30:49 +0100 Subject: [PATCH] im Moment fehlerhafte WDT Konfig --- B15F.aps | 2 +- B15F.elf | Bin 11972 -> 12852 bytes B15F.hex | 255 +++++++++++++++++++++++++++--------------------- global_vars.cpp | 2 + global_vars.h | 2 + main.cpp | 62 +++++++++--- requests.cpp | 55 +++++++++++ requests.h | 14 +++ selftest.cpp | 4 + selftest.h | 1 + 10 files changed, 273 insertions(+), 124 deletions(-) diff --git a/B15F.aps b/B15F.aps index e608e9b..f16887a 100644 --- a/B15F.aps +++ b/B15F.aps @@ -1 +1 @@ -B15F22-Mar-2019 14:29:5426-Mar-2019 15:02:47241022-Mar-2019 14:29:5444, 19, 0, 730AVR GCCB15F.elfF:\JTAGICE mkIIATmega1284.xmlfalseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto000spi.cppmain.cppMakefilemcp23s17.cppTLC5615.cppadu.cppselftest.cppglobal_vars.cppusart.cpprequests.cppspi.hmcp23s17.hTLC5615.hadu.hselftest.hglobal_vars.husart.hrequests.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:\TLC5615.hF:\adu.hF:\selftest.hF:\global_vars.hF:\usart.hF:\requests.hF:\spi.cppF:\main.cppF:\MakefileF:\mcp23s17.cppF:\TLC5615.cppF:\adu.cppF:\selftest.cppF:\global_vars.cppF:\usart.cppF:\requests.cpp00000Makefile100001main.cpp100002requests.h100003requests.cpp100004usart.cpp1 +B15F22-Mar-2019 14:29:5426-Mar-2019 15:54:13241022-Mar-2019 14:29:5444, 19, 0, 730AVR GCCB15F.elfF:\JTAGICE mkIIATmega1284.xmlfalseR00R01R02R03R04R05R06R07R08R09R10R11R12R13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31Auto000spi.cppmain.cppMakefilemcp23s17.cppTLC5615.cppadu.cppselftest.cppglobal_vars.cppusart.cpprequests.cppspi.hmcp23s17.hTLC5615.hadu.hselftest.hglobal_vars.husart.hrequests.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:\TLC5615.hF:\adu.hF:\selftest.hF:\global_vars.hF:\usart.hF:\requests.hF:\spi.cppF:\main.cppF:\MakefileF:\mcp23s17.cppF:\TLC5615.cppF:\adu.cppF:\selftest.cppF:\global_vars.cppF:\usart.cppF:\requests.cpp00000Makefile100001main.cpp100002requests.h100003requests.cpp100004usart.cpp100005global_vars.cpp100006global_vars.h100007adu.h1 diff --git a/B15F.elf b/B15F.elf index eb2397583372d858c3d8048ec2a98ca77b30ae4a..5b9b1322bd08c95f6fc5edf97b942fb38d54f379 100644 GIT binary patch delta 4188 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 diff --git a/B15F.hex b/B15F.hex index b59e8ef..f6ef084 100644 --- a/B15F.hex +++ b/B15F.hex @@ -1,112 +1,145 @@ -:100000000C9447000C9464000C9464000C946400FD -:100010000C9464000C9464000C9464000C946400D0 -:100020000C9466000C9464000C9464000C946400BE -:100030000C9464000C9464000C9464000C946400B0 -:100040000C9464000C9464000C9464000C946400A0 -:100050000C9464000C9464000C9464000C94640090 -:100060000C9464000C9464000C9464000C94640080 -:100070000C9464000C9464000C9464000C94640070 -:100080000C9464000C9464000C94640043031124E9 -:100090001FBECFEFD0E4DEBFCDBF21E0A0E0B1E0D6 -:1000A00001C01D92A231B207E1F710E0C7E4D0E031 -:1000B00004C02197FE010E946A03C634D107C9F724 -:1000C0000E9429030C9473030C9400001F920F925A -:1000D0000FB60F92112491E085B1892785B92FEFD2 -:1000E00034E38CE0215030408040E1F700C0000054 -:1000F000F3CF81E191E00E94B00060E08EE091E0FA -:100100000E94F3006FEF8EE091E00E94140160E026 -:100110008BE091E00E94F3006FEF8BE091E00E9492 -:1001200014016FEF88E091E00E94140181E091E0FA -:100130000E94E90180E091E00C94D60280E091E019 -:100140000E94F202823049F0833029F0813009F0B8 -:1001500008950C940A030C941C030C941B0308953B -:1001600084B1806B84B926988AB18C618AB980E5A4 -:100170008CBD81E08DBD8BB1837E8BB95A9A5B9A21 -:100180005C9A08958BB1837E8BB98BB160FD10C0F2 -:1001900090E0892B8BB98BB161FD10C090E0892B69 -:1001A0008BB98BB162FD10C090E0892B8BB908959B -:1001B00094E0892B8BB98BB161FFF0CF98E0892B4C -:1001C0008BB98BB162FFF0CF90E1892B8BB9089589 -:1001D0006EBD0DB407FEFDCF8EB50895FC01718391 -:1001E0006083428308951F93CF93DF93EC01162F12 -:1001F0006A81888199810E94C20060E48881998126 -:100200000E94E80060E0888199810E94E800612FE7 -:10021000888199810E94E80067E088819981DF9157 -:10022000CF911F910C94C2001F93CF93DF93EC01E9 -:10023000162F6A81888199810E94C20060E48881BA -:1002400099810E94E80061E0888199810E94E8001C -:10025000612F888199810E94E80067E088819981F7 -:10026000DF91CF911F910C94C2001F93CF93DF9326 -:10027000EC01162F6A81888199810E94C20060E496 -:10028000888199810E94E80062E1888199810E94B9 -:10029000E800612F888199810E94E80067E08881E9 -:1002A0009981DF91CF911F910C94C2001F93CF933E -:1002B000DF93EC01162F6A81888199810E94C20028 -:1002C00060E4888199810E94E80063E188819981D6 -:1002D0000E94E800612F888199810E94E80067E010 -:1002E00088819981DF91CF911F910C94C2001F9357 -:1002F000CF93DF93EC016A81888199810E94C200CB -:1003000061E4888199810E94E80062E18881998195 -:100310000E94E80060E0888199810E94E800182F1F -:1003200067E0888199810E94C200812FDF91CF917F -:100330001F9108951F93CF93DF93EC016A81888109 -:1003400099810E94C20061E4888199810E94E8003D -:1003500063E1888199810E94E80060E08881998149 -:100360000E94E800182F67E0888199810E94C200EE -:10037000812FDF91CF911F910895FC014283089551 -:100380000F931F93CF93DF93EC018B016A818881D8 -:1003900099810E94C200B8010024660F771F001CDB -:1003A000660F771F001C672F702D888199810E942E -:1003B000E800602F660F660F888199810E94E8002F -:1003C00067E088819981DF91CF911F910F910C9403 -:1003D000C20010927C0087E880937A000895809193 -:1003E0007C00807E682B60937C0080917A00806422 -:1003F00080937A0083EA91E00197F1F700C0000052 -:1004000080917A0086FDFCCF8091780090917900F0 -:1004100008950F931F93CF93DF9361E08EE091E0F7 -:100420000E943501C1E0D0E001E010E02FEF84E34D -:100430009CE0215080409040E1F700C00000B801EE -:100440000C2E01C0660F0A94EAF78EE091E00E943C -:1004500035012196C930D10549F7DF91CF911F9120 -:100460000F9108950F931F93CF93DF9361E08BE07B -:1004700091E00E943501C1E0D0E001E010E02FEFF3 -:1004800084E39CE0215080409040E1F700C00000F0 -:10049000B8010C2E01C0660F0A94EAF78BE091E0D8 -:1004A0000E9435012196C930D10549F7DF91CF91DE -:1004B0001F910F910895CF93DF93C0E0D0E0BE016C -:1004C00085E091E00E94C00187E893E10197F1F790 -:1004D00000C000002196C11594E0D90781F72FE7ED -:1004E0008AE196E0215080409040E1F700C0000092 -:1004F00060E070E085E091E0DF91CF910C94C00165 -:10050000CF93DF93C0E0D0E0BE0182E091E00E9493 -:10051000C00187E893E10197F1F700C00000219640 -:10052000C11594E0D90781F72FE78AE196E02150C1 -:1005300080409040E1F700C0000060E070E082E0A1 -:1005400091E0DF91CF910C94C00160E081E091E0F7 -:100550000E94EF01BC0185E091E00E94C00161E0D2 -:1005600081E091E00E94EF01BC0182E091E00E94F5 -:10057000C0018EE091E00E949A01682F8EE091E028 -:100580000E94350188E091E00E949A01682F8BE07B -:1005900091E00E943501D9CF0E9409020E943202E7 -:1005A0000E945B020E9480020E94A50288E1809363 -:1005B000C10086E08093C2001092C5008FE1809355 -:1005C000C40008956093C6008091C00086FFFCCFF0 -:1005D00008956093C6007093C6008091C00086FFA6 -:1005E000FCCF08958091C00087FFFCCF8091C600AA -:1005F00008958091C00087FFFCCF2091C60030E0B5 -:100600009091C00097FFFCCF8091C600A901582BA4 -:10061000CA010895CF9380E091E00E94F202C82FB2 -:100620006FEF80E091E00E94E2026C2F80E091E0A9 -:10063000CF910C94E202089580E091E00E94F902CB -:10064000BC01660F771F680F791F80E091E00C9462 -:10065000E9020E94790080E091E00E94F20282307B -:1006600061F0833069F08130B1F70E940A0380E0C5 -:1006700091E00E94F2028230A1F70E941B03EBCFAF -:100680000E941C03E8CF81E191E00E94AF0042E0AC -:1006900061E171E08EE091E00E94EE0043E061E1F3 -:1006A00071E08BE091E00E94EE0045E061E171E0D5 -:1006B00088E091E00E94EE0040E061E171E085E0B9 -:1006C00091E00E94BD0141E061E171E082E091E0D2 -:1006D0000C94BD01EE0FFF1F0024001C0BBE079001 -:0A06E000F691E02D0994F894FFCF85 +:100000000C945D000C9487000C9487000C9487007E +:100010000C9487000C9487000C9487000C94870044 +:100020000C9489000C9487000C9487000C94870032 +:100030000C9487000C9487000C9487000C94870024 +:100040000C9487000C9487000C9487000C94870014 +:100050000C9487000C9487000C9487000C94870004 +:100060000C9487000C9487000C9487000C948700F4 +:100070000C9487000C9487000C9487000C948700E4 +:100080000C9487000C9487000C948700E600E8002D +:10009000EA00E100EC00EE00F000F200F400F600EF +:1000A000F80040043C0438041E04340430042C04DA +:1000B0002804240420041C04440411241FBECFEF90 +:1000C000D0E4DEBFCDBF11E0A0E0B1E0ECEEF8E09F +:1000D00000E00BBF02C007900D92A230B107D9F724 +:1000E00021E0A2E0B1E001C01D92A431B207E1F726 +:1000F00010E0CDE5D0E004C02197FE010E946B0422 +:10010000CC35D107C9F70E94EB030C9474040C940E +:1001100000001F920F920FB60F9211240BB60F9290 +:100120008F93EF93FF93E0E6F0E08081806480831B +:10013000FF91EF918F910F900BBE0F900FBE0F901C +:100140001F90189580E4809360009EE088E10FB6D0 +:10015000F894A895809360000FBE90936000A895D6 +:1001600083E191E00E94FB0060E080E191E00E9469 +:100170003E016FEF80E191E00E945F0160E08DE061 +:1001800091E00E943E016FEF8DE091E00E945F01DF +:100190006FEF8AE091E00E945F0183E091E00E94AE +:1001A000340282E091E00E942C037894089582E06A +:1001B00091E00E94480390E0FC013197EB30F1059B +:1001C00008F00895EA5BFF4F0C946B040C946003F5 +:1001D0000C9471030C9472030C947F030C9492039F +:1001E0000C94A5030C94AE030C94B7030C94CA03AF +:1001F0000C94DD03089584B1806B84B926988AB18C +:100200008C618AB980E58CBD81E08DBD8BB1837E28 +:100210008BB95A9A5B9A5C9A08958BB1837E8BB99D +:100220008BB160FD10C090E0892B8BB98BB161FD63 +:1002300010C090E0892B8BB98BB162FD10C090E0AB +:10024000892B8BB9089594E0892B8BB98BB161FF11 +:10025000F0CF98E0892B8BB98BB162FFF0CF90E1A2 +:10026000892B8BB908956EBD0DB407FEFDCF8EB5F9 +:100270000895FC0171836083428308951F93CF9397 +:10028000DF93EC01162F6A81888199810E940D010C +:1002900060E4888199810E94330160E088819981BE +:1002A0000E943301612F888199810E94330167E0A8 +:1002B00088819981DF91CF911F910C940D011F933B +:1002C000CF93DF93EC01162F6A81888199810E9478 +:1002D0000D0160E4888199810E94330161E0888189 +:1002E00099810E943301612F888199810E94330195 +:1002F00067E088819981DF91CF911F910C940D0166 +:100300001F93CF93DF93EC01162F6A818881998127 +:100310000E940D0160E4888199810E94330162E1AD +:10032000888199810E943301612F888199810E947F +:10033000330167E088819981DF91CF911F910C94FF +:100340000D011F93CF93DF93EC01162F6A818881F3 +:1003500099810E940D0160E4888199810E94330196 +:1003600063E1888199810E943301612F888199819D +:100370000E94330167E088819981DF91CF911F91BD +:100380000C940D011F93CF93DF93EC016A81888158 +:1003900099810E940D0161E4888199810E94330155 +:1003A00062E1888199810E94330160E088819981AE +:1003B0000E943301182F67E0888199810E940D0106 +:1003C000812FDF91CF911F9108951F93CF93DF93DA +:1003D000EC016A81888199810E940D0161E4888124 +:1003E00099810E94330163E1888199810E943301E0 +:1003F00060E0888199810E943301182F67E088812D +:1004000099810E940D01812FDF91CF911F91089555 +:10041000FC01428308950F931F93CF93DF93EC0168 +:100420008B016A81888199810E940D01B8010024A5 +:10043000660F771F001C660F771F001C672F702D3B +:10044000888199810E943301602F660F660F888131 +:1004500099810E94330167E088819981DF91CF9172 +:100460001F910F910C940D0110927C0087E88093EE +:100470007A00089580917C00807E682B60937C00D8 +:1004800080917A00806480937A0083EA91E00197FA +:10049000F1F700C0000080917A0086FDFCCF8091CA +:1004A00078009091790008950F931F93CF93DF9375 +:1004B00061E080E191E00E948001C1E0D0E001E0D4 +:1004C00010E02FEF84E39CE0215080409040E1F762 +:1004D00000C00000B8010C2E01C0660F0A94EAF7B4 +:1004E00080E191E00E9480012196C930D10549F751 +:1004F000DF91CF911F910F9108950F931F93CF9389 +:10050000DF9361E08DE091E00E948001C1E0D0E0E6 +:1005100001E010E02FEF84E39CE021508040904008 +:10052000E1F700C00000B8010C2E01C0660F0A946C +:10053000EAF78DE091E00E9480012196C930D10553 +:1005400049F7DF91CF911F910F910895CF93DF93DA +:10055000C0E0D0E0BE0187E091E00E940B0287E896 +:1005600093E10197F1F700C000002196C11594E0D6 +:10057000D90781F72FE78AE196E02150804090402B +:10058000E1F700C0000060E070E087E091E0DF91FB +:10059000CF910C940B02CF93DF93C0E0D0E0BE016B +:1005A00084E091E00E940B0287E893E10197F1F764 +:1005B00000C000002196C11594E0D90781F72FE70C +:1005C0008AE196E0215080409040E1F700C00000B1 +:1005D00060E070E084E091E0DF91CF910C940B0239 +:1005E0000FB6F894A89580916000886180936000B0 +:1005F000109260000FBE60E083E091E00E943A023A +:10060000BC0187E091E00E940B0261E083E091E091 +:100610000E943A02BC0184E091E00E940B0280E15A +:1006200091E00E94E501682F80E191E00E94800145 +:100630008AE091E00E94E501682F8DE091E00E9440 +:100640008001D9CF0E9454020E947D020E94A6021E +:100650000E94CB020E94F00288E18093C10086E0F4 +:100660008093C2001092C5008FE18093C40008956A +:100670006093C6008091C00086FFFCCF0895609310 +:10068000C6007093C6008091C00086FFFCCF08951D +:100690008091C00087FFFCCF8091C60008958091B3 +:1006A000C00087FFFCCF2091C60030E09091C000D1 +:1006B00097FFFCCF8091C600A901582BCA0108956D +:1006C000CF9382E091E00E944803C82F6FEF82E051 +:1006D00091E00E9438036C2F82E091E0CF910C945E +:1006E0003803089582E091E00E944F03BC01660F39 +:1006F000771F680F791F82E091E00C943F0382E03E +:1007000091E00E944803682F80E191E00E948001FF +:1007100080910001811101C008956FEF82E091E0A6 +:100720000C94380382E091E00E944803682F8DE02A +:1007300091E00E94800180910001811101C0089523 +:100740006FEF82E091E00C94380380E191E00E9429 +:10075000E501682F82E091E00C9438038DE091E090 +:100760000E94E501682F82E091E00C94380382E05A +:1007700091E00E944F03BC0187E091E00E940B02D0 +:1007800080910001811101C008956FEF82E091E036 +:100790000C94380382E091E00E944F03BC0184E096 +:1007A00091E00E940B0280910001811101C0089527 +:1007B0006FEF82E091E00C94380382E091E00E94B8 +:1007C0004803682F83E091E00E943A02BC0182E076 +:1007D00091E00C943F030E94A200C3E0D0E06FEFD1 +:1007E00080E191E00E9480012FE78AE196E02150AC +:1007F00080409040E1F700C0000060E080E191E0BF +:100800000E9480012FE78AE196E0215080409040CD +:10081000E1F700C00000A895219709F782E091E078 +:100820000E94480390E0FC013197EB30F10530F471 +:10083000EF5AFF4F0C946B040E94DD03A895EECF96 +:100840000E94CA03A895EACF0E94B703A895E6CFF5 +:100850000E94AE03A895E2CF0E94A503A895DECF23 +:100860000E949203A895DACF0E947F03A895D6CF65 +:100870000E947203A895D2CF0E947103A895CECF93 +:100880000E946003A895CACF83E191E00E94FA001C +:1008900042E063E171E080E191E00E94390143E0D0 +:1008A00063E171E08DE091E00E94390145E063E190 +:1008B00071E08AE091E00E94390140E063E171E07B +:1008C00087E091E00E94080241E063E171E084E08A +:1008D00091E00C940802EE0FFF1F0024001C0BBED9 +:0C08E0000790F691E02D0994F894FFCFEA +:0208EC00010009 :00000001FF diff --git a/global_vars.cpp b/global_vars.cpp index ac6f544..9b88db9 100644 --- a/global_vars.cpp +++ b/global_vars.cpp @@ -8,3 +8,5 @@ TLC5615 dac0(spi, SPIADR::AA0); TLC5615 dac1(spi, SPIADR::AA1); ADU adu; USART usart; + +bool ACK_MODE = 1; diff --git a/global_vars.h b/global_vars.h index c7ecd0c..d6206c2 100644 --- a/global_vars.h +++ b/global_vars.h @@ -15,4 +15,6 @@ extern TLC5615 dac1; extern ADU adu; extern USART usart; +extern bool ACK_MODE; + #endif // GLOBAL_VARS_H diff --git a/main.cpp b/main.cpp index 2dad6ac..0759438 100644 --- a/main.cpp +++ b/main.cpp @@ -7,20 +7,21 @@ #include "requests.h" -#define LED PB0 + ISR(WDT_vect) { - while(1) - { - PORTB ^= _BV(LED); - _delay_ms(200); - } WDTCSR |= _BV(WDIE); } void initAll() { + // Konfiguriere WDT + WDTCSR = _BV(WDIE); + wdt_enable(WDTO_1S); + wdt_reset(); + //wdt_disable(); + spi.init(); beba0.setDirA(0x00); // alle Ausgang @@ -31,6 +32,9 @@ void initAll() adu.init(); usart.init(); + + // aktiviere Interrupts + sei(); } void handleRequest() @@ -54,6 +58,34 @@ void handleRequest() rqTestIntConv(); break; + case RQ_BA0: + rqDigitalWrite0(); + break; + + case RQ_BA1: + rqDigitalWrite1(); + break; + + case RQ_BE0: + rqDigitalRead0(); + break; + + case RQ_BE1: + rqDigitalRead1(); + break; + + case RQ_AA0: + rqAnalogWrite0(); + break; + + case RQ_AA1: + rqAnalogWrite1(); + break; + + case RQ_ADC: + rqAnalogRead(); + break; + default: break; } @@ -61,17 +93,23 @@ void handleRequest() int main() { - /*WDTCSR = _BV(WDIE) | _BV(WDP3) | _BV(WDP0); - DDRB |= _BV(LED); - PORTB &= ~_BV(LED); - wdt_reset(); - sei();*/ 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(); + wdt_reset(); } return 0; diff --git a/requests.cpp b/requests.cpp index 236b99a..3d483a7 100644 --- a/requests.cpp +++ b/requests.cpp @@ -16,3 +16,58 @@ void rqTestIntConv() { usart.writeInt(usart.readInt() * 3); } + +void rqDigitalWrite0() +{ + uint8_t port = usart.readByte(); + beba0.writePortA(port); + + if(ACK_MODE) + usart.writeByte(USART::MSG_OK); +} + +void rqDigitalWrite1() +{ + uint8_t port = usart.readByte(); + beba1.writePortA(port); + + if(ACK_MODE) + usart.writeByte(USART::MSG_OK); +} + +void rqDigitalRead0() +{ + uint8_t port = beba0.readPortB(); + usart.writeByte(port); +} + +void rqDigitalRead1() +{ + uint8_t port = beba1.readPortB(); + usart.writeByte(port); +} + +void rqAnalogWrite0() +{ + uint16_t value = usart.readInt(); + dac0.setValue(value); + + if(ACK_MODE) + usart.writeByte(USART::MSG_OK); +} + +void rqAnalogWrite1() +{ + uint16_t value = usart.readInt(); + dac1.setValue(value); + + if(ACK_MODE) + usart.writeByte(USART::MSG_OK); +} + +void rqAnalogRead() +{ + uint8_t channel = usart.readByte(); + uint16_t value = adu.getValue(channel); + usart.writeInt(value); +} diff --git a/requests.h b/requests.h index b62c9b2..00f1324 100644 --- a/requests.h +++ b/requests.h @@ -7,10 +7,24 @@ constexpr static uint8_t RQ_DISC = 0; constexpr static uint8_t RQ_TEST = 1; constexpr static uint8_t RQ_INFO = 2; constexpr static uint8_t RQ_INT = 3; +constexpr static uint8_t RQ_BA0 = 5; +constexpr static uint8_t RQ_BA1 = 6; +constexpr static uint8_t RQ_BE0 = 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; void rqTestConnection(void); void rqBoardInfo(void); void rqTestIntConv(void); void rqTestLongConv(void); +void rqDigitalWrite0(void); +void rqDigitalWrite1(void); +void rqDigitalRead0(void); +void rqDigitalRead1(void); +void rqAnalogWrite0(void); +void rqAnalogWrite1(void); +void rqAnalogRead(void); #endif // REQUESTS_H diff --git a/selftest.cpp b/selftest.cpp index 911d54e..2cf7bd2 100644 --- a/selftest.cpp +++ b/selftest.cpp @@ -55,6 +55,10 @@ void testDAC1(void) void testMirror() { + // deaktiviere WDT + wdt_disable(); + + // Endlosschleife while(1) { dac0.setValue(adu.getValue(0)); diff --git a/selftest.h b/selftest.h index 0035ed1..5a95f5f 100644 --- a/selftest.h +++ b/selftest.h @@ -1,6 +1,7 @@ #ifndef SELFTEST_H #define SELFTEST_H +#include #include "global_vars.h" void testAll(void);