diff --git a/B15F.aps b/B15F.aps index 08b5532..e608e9b 100644 --- a/B15F.aps +++ b/B15F.aps @@ -1 +1 @@ -<AVRStudio><MANAGEMENT><ProjectName>B15F</ProjectName><Created>22-Mar-2019 14:29:54</Created><LastEdit>26-Mar-2019 08:32:01</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>22-Mar-2019 14:29:54</Created><Version>4</Version><Build>4, 19, 0, 730</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>B15F.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>F:\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>JTAGICE mkII</CURRENT_TARGET><CURRENT_PART>ATmega1284.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>spi.cpp</SOURCEFILE><SOURCEFILE>main.cpp</SOURCEFILE><SOURCEFILE>Makefile</SOURCEFILE><SOURCEFILE>mcp23s17.cpp</SOURCEFILE><SOURCEFILE>TLC5615.cpp</SOURCEFILE><SOURCEFILE>adu.cpp</SOURCEFILE><SOURCEFILE>selftest.cpp</SOURCEFILE><SOURCEFILE>global_vars.cpp</SOURCEFILE><HEADERFILE>spi.h</HEADERFILE><HEADERFILE>mcp23s17.h</HEADERFILE><HEADERFILE>TLC5615.h</HEADERFILE><HEADERFILE>adu.h</HEADERFILE><HEADERFILE>selftest.h</HEADERFILE><HEADERFILE>global_vars.h</HEADERFILE><OTHERFILE>default\B15F.lss</OTHERFILE><OTHERFILE>default\B15F.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>c++</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega128</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>B15F.elf</OUTPUTFILENAME><OUTPUTDIR>c++\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>YES</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE>Makefile</EXTERNALMAKEFILE><PART>atmega1284</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>B15F.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS><OPTION><FILE>main.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>spi.cpp</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS><INCLUDE>C:\avr8-gnu-toolchain-win32_x86\avr\include\</INCLUDE></INCDIRS><LIBDIRS><LIBDIR>C:\avr8-gnu-toolchain-win32_x86\avr\lib\</LIBDIR></LIBDIRS><LIBS><LIB>libc.a</LIB></LIBS><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -DF_CPU=20000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>0</USES_WINAVR><GCC_LOC>C:\avr8-gnu-toolchain-win32_x86\bin\avr-g++.exe</GCC_LOC><MAKE_LOC>C:\WinAVR-20100110\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>F:\spi.h</Name><Name>F:\mcp23s17.h</Name><Name>F:\TLC5615.h</Name><Name>F:\adu.h</Name><Name>F:\selftest.h</Name><Name>F:\global_vars.h</Name><Name>F:\spi.cpp</Name><Name>F:\main.cpp</Name><Name>F:\Makefile</Name><Name>F:\mcp23s17.cpp</Name><Name>F:\TLC5615.cpp</Name><Name>F:\adu.cpp</Name><Name>F:\selftest.cpp</Name><Name>F:\global_vars.cpp</Name></Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="0" orderaddress="0" ordergroup="0"/></IOView><Files><File00000><FileId>00000</FileId><FileName>main.cpp</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>Makefile</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>selftest.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>selftest.cpp</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>global_vars.cpp</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>spi.h</FileName><Status>1</Status></File00005><File00006><FileId>00006</FileId><FileName>spi.cpp</FileName><Status>1</Status></File00006></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio> +<AVRStudio><MANAGEMENT><ProjectName>B15F</ProjectName><Created>22-Mar-2019 14:29:54</Created><LastEdit>26-Mar-2019 15:02:47</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>22-Mar-2019 14:29:54</Created><Version>4</Version><Build>4, 19, 0, 730</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>B15F.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>F:\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>JTAGICE mkII</CURRENT_TARGET><CURRENT_PART>ATmega1284.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>spi.cpp</SOURCEFILE><SOURCEFILE>main.cpp</SOURCEFILE><SOURCEFILE>Makefile</SOURCEFILE><SOURCEFILE>mcp23s17.cpp</SOURCEFILE><SOURCEFILE>TLC5615.cpp</SOURCEFILE><SOURCEFILE>adu.cpp</SOURCEFILE><SOURCEFILE>selftest.cpp</SOURCEFILE><SOURCEFILE>global_vars.cpp</SOURCEFILE><SOURCEFILE>usart.cpp</SOURCEFILE><SOURCEFILE>requests.cpp</SOURCEFILE><HEADERFILE>spi.h</HEADERFILE><HEADERFILE>mcp23s17.h</HEADERFILE><HEADERFILE>TLC5615.h</HEADERFILE><HEADERFILE>adu.h</HEADERFILE><HEADERFILE>selftest.h</HEADERFILE><HEADERFILE>global_vars.h</HEADERFILE><HEADERFILE>usart.h</HEADERFILE><HEADERFILE>requests.h</HEADERFILE><OTHERFILE>default\B15F.lss</OTHERFILE><OTHERFILE>default\B15F.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>c++</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega128</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>B15F.elf</OUTPUTFILENAME><OUTPUTDIR>c++\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>YES</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE>Makefile</EXTERNALMAKEFILE><PART>atmega1284</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>B15F.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS><OPTION><FILE>main.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>spi.cpp</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS><INCLUDE>C:\avr8-gnu-toolchain-win32_x86\avr\include\</INCLUDE></INCDIRS><LIBDIRS><LIBDIR>C:\avr8-gnu-toolchain-win32_x86\avr\lib\</LIBDIR></LIBDIRS><LIBS><LIB>libc.a</LIB></LIBS><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -DF_CPU=20000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>0</USES_WINAVR><GCC_LOC>C:\avr8-gnu-toolchain-win32_x86\bin\avr-g++.exe</GCC_LOC><MAKE_LOC>C:\WinAVR-20100110\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>F:\spi.h</Name><Name>F:\mcp23s17.h</Name><Name>F:\TLC5615.h</Name><Name>F:\adu.h</Name><Name>F:\selftest.h</Name><Name>F:\global_vars.h</Name><Name>F:\usart.h</Name><Name>F:\requests.h</Name><Name>F:\spi.cpp</Name><Name>F:\main.cpp</Name><Name>F:\Makefile</Name><Name>F:\mcp23s17.cpp</Name><Name>F:\TLC5615.cpp</Name><Name>F:\adu.cpp</Name><Name>F:\selftest.cpp</Name><Name>F:\global_vars.cpp</Name><Name>F:\usart.cpp</Name><Name>F:\requests.cpp</Name></Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="1" orderaddress="1" ordergroup="1"/></IOView><Files><File00000><FileId>00000</FileId><FileName>Makefile</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>main.cpp</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>requests.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>requests.cpp</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>usart.cpp</FileName><Status>1</Status></File00004></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio> diff --git a/B15F.elf b/B15F.elf index 3ecadd1..eb23975 100644 Binary files a/B15F.elf and b/B15F.elf differ diff --git a/B15F.hex b/B15F.hex index 54d07c1..b59e8ef 100644 --- a/B15F.hex +++ b/B15F.hex @@ -6,100 +6,107 @@ :100050000C9464000C9464000C9464000C94640090 :100060000C9464000C9464000C9464000C94640080 :100070000C9464000C9464000C9464000C94640070 -:100080000C9464000C9464000C9464000A03112422 +:100080000C9464000C9464000C94640043031124E9 :100090001FBECFEFD0E4DEBFCDBF21E0A0E0B1E0D6 :1000A00001C01D92A231B207E1F710E0C7E4D0E031 -:1000B00004C02197FE010E943103C634D107C9F75D -:1000C0000E94F4020C943A030C9400001F920F92C9 +:1000B00004C02197FE010E946A03C634D107C9F724 +:1000C0000E9429030C9473030C9400001F920F925A :1000D0000FB60F92112491E085B1892785B92FEFD2 :1000E00034E38CE0215030408040E1F700C0000054 -:1000F000F3CF81E191E00E94B40060E08EE091E0F6 -:100100000E94F7006FEF8EE091E00E94180160E01E -:100110008BE091E00E94F7006FEF8BE091E00E948E -:1001200018016FEF88E091E00E94180181E091E0F2 -:100130000E94ED0180E091E00C94DA02CF9380E020 -:1001400091E00E94ED0280E091E00E94ED02C82F54 -:100150006FEF80E091E00E94E6026C2F80E091E07A -:10016000CF910C94E602089584B1806B84B92698EF -:100170008AB18C618AB980E58CBD81E08DBD8BB17F -:10018000837E8BB95A9A5B9A5C9A08958BB1837E71 -:100190008BB98BB160FD10C090E0892B8BB98BB10E -:1001A00061FD10C090E0892B8BB98BB162FD10C04E -:1001B00090E0892B8BB9089594E0892B8BB98BB192 -:1001C00061FFF0CF98E0892B8BB98BB162FFF0CF44 -:1001D00090E1892B8BB908956EBD0DB407FEFDCF5C -:1001E0008EB50895FC0171836083428308951F9347 -:1001F000CF93DF93EC01162F6A81888199810E9449 -:10020000C60060E4888199810E94EC0060E08881EA -:1002100099810E94EC00612F888199810E94EC00F5 -:1002200067E088819981DF91CF911F910C94C6007E -:100230001F93CF93DF93EC01162F6A8188819981F8 -:100240000E94C60060E4888199810E94EC0061E010 -:10025000888199810E94EC00612F888199810E9498 -:10026000EC0067E088819981DF91CF911F910C9418 -:10027000C6001F93CF93DF93EC01162F6A8188810C -:1002800099810E94C60060E4888199810E94EC00F7 -:1002900062E1888199810E94EC00612F88819981B7 -:1002A0000E94EC0067E088819981DF91CF911F91D6 -:1002B0000C94C6001F93CF93DF93EC01162F6A8135 -:1002C000888199810E94C60060E4888199810E949A -:1002D000EC0063E1888199810E94EC00612F8881A4 -:1002E00099810E94EC0067E088819981DF91CF912C -:1002F0001F910C94C6001F93CF93DF93EC016A818A -:10030000888199810E94C60061E4888199810E9458 -:10031000EC0062E1888199810E94EC0060E08881B4 -:1003200099810E94EC00182F67E0888199810E94D2 -:10033000C600812FDF91CF911F9108951F93CF9316 -:10034000DF93EC016A81888199810E94C60061E493 -:10035000888199810E94EC0063E1888199810E94E3 -:10036000EC0060E0888199810E94EC00182F67E022 -:10037000888199810E94C600812FDF91CF911F91C2 -:100380000895FC01428308950F931F93CF93DF9349 -:10039000EC018B016A81888199810E94C600B801B5 -:1003A0000024660F771F001C660F771F001C672F45 -:1003B000702D888199810E94EC00602F660F660F76 -:1003C000888199810E94EC0067E088819981DF91A2 -:1003D000CF911F910F910C94C60010927C0087E87A -:1003E00080937A00089580917C00807E682B6093D2 -:1003F0007C0080917A00806480937A0083EA91E0A7 -:100400000197F1F700C0000080917A0086FDFCCFD3 -:10041000809178009091790008950F931F93CF9366 -:10042000DF9361E08EE091E00E943901C1E0D0E00D -:1004300001E010E02FEF84E39CE0215080409040E9 -:10044000E1F700C00000B8010C2E01C0660F0A944D -:10045000EAF78EE091E00E9439012196C930D1057A -:1004600049F7DF91CF911F910F9108950F931F933B -:10047000CF93DF9361E08BE091E00E943901C1E00E -:10048000D0E001E010E02FEF84E39CE021508040B9 -:100490009040E1F700C00000B8010C2E01C0660FCB -:1004A0000A94EAF78BE091E00E9439012196C93065 -:1004B000D10549F7DF91CF911F910F910895CF9307 -:1004C000DF93C0E0D0E0BE0185E091E00E94C4016E -:1004D00087E893E10197F1F700C000002196C1156C -:1004E00094E0D90781F72FE78AE196E02150804018 -:1004F0009040E1F700C0000060E070E085E091E02E -:10050000DF91CF910C94C401CF93DF93C0E0D0E092 -:10051000BE0182E091E00E94C40187E893E1019767 -:10052000F1F700C000002196C11594E0D90781F7CA -:100530002FE78AE196E0215080409040E1F700C02B -:10054000000060E070E082E091E0DF91CF910C94D8 -:10055000C40160E081E091E00E94F301BC0185E00C -:1005600091E00E94C40161E081E091E00E94F3010A -:10057000BC0182E091E00E94C4018EE091E00E9403 -:100580009E01682F8EE091E00E94390188E091E0A1 -:100590000E949E01682F8BE091E00E943901D9CF23 -:1005A0000E940D020E9436020E945F020E94840295 -:1005B0000E94A90288E18093C10086E08093C20076 -:1005C0001092C5008FE18093C40008956093C60027 -:1005D0008091C00086FFFCCF08958091C00087FF06 -:1005E000FCCF8091C60008950E94790080E091E0E0 -:1005F0000E94ED0280E091E00E94ED02C82F6FEFB3 -:1006000080E091E00E94E6026C2F80E091E00E9481 -:10061000E602ECCF81E191E00E94B30042E061E1AB -:1006200071E08EE091E00E94F20043E061E171E050 -:100630008BE091E00E94F20045E061E171E088E02A -:1006400091E00E94F20040E061E171E085E091E01C -:100650000E94C10141E061E171E082E091E00C940F -:10066000C101EE0FFF1F0024001C0BBE0790F69186 -:08067000E02D0994F894FFCF7E +: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 :00000001FF diff --git a/Makefile b/Makefile index bc20456..85c7e1a 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ OUTPUT = B15F.elf HEX = B15F.hex CFLAGS = -std=c++14 -O3 -mmcu=atmega1284 -DF_CPU=20000000 LDFLAGS = -OBJECTS = main.o spi.o mcp23s17.o tlc5615.o adu.o selftest.o global_vars.o usart.o +OBJECTS = main.o spi.o mcp23s17.o tlc5615.o adu.o selftest.o global_vars.o usart.o requests.o COMPILE = $(COMPILER_PATH) $(CFLAGS) diff --git a/b15f.aws b/b15f.aws index a961817..1407eab 100644 --- a/b15f.aws +++ b/b15f.aws @@ -1 +1 @@ -<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA1284"/><Files><File00000 Name="F:\main.cpp" Position="267 101 1369 495" LineCol="29 6" State="Maximized"/><File00001 Name="F:\Makefile" Position="289 130 1383 494" LineCol="14 67" State="Maximized"/><File00002 Name="F:\selftest.h" Position="263 71 1501 647" LineCol="9 13" State="Maximized"/><File00003 Name="F:\selftest.cpp" Position="333 188 1427 552" LineCol="32 13" State="Maximized"/><File00004 Name="F:\vars.h" Position="355 217 1449 581" LineCol="12 19" State="Maximized"/></Files></AVRWorkspace> +<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA1284"/><Files><File00000 Name="F:\Makefile" Position="342 159 1436 523" LineCol="31 19" State="Maximized"/><File00001 Name="F:\main.cpp" Position="430 275 1528 643" LineCol="58 9" State="Maximized"/><File00002 Name="F:\requests.h" Position="294 71 1501 647" LineCol="10 0" State="Maximized"/><File00003 Name="F:\requests.cpp" Position="320 130 1418 498" LineCol="21 16" State="Maximized"/></Files></AVRWorkspace> diff --git a/main.cpp b/main.cpp index 1650305..2dad6ac 100644 --- a/main.cpp +++ b/main.cpp @@ -4,6 +4,7 @@ #include <avr/wdt.h> #include "global_vars.h" #include "selftest.h" +#include "requests.h" #define LED PB0 @@ -35,9 +36,27 @@ void initAll() void handleRequest() { const uint8_t req = usart.readByte(); - uint8_t dummy = usart.readByte(); - usart.writeByte(USART::MSG_OK); - usart.writeByte(dummy); + + switch(req) + { + case RQ_DISC: + break; + + case RQ_TEST: + rqTestConnection(); + break; + + case RQ_INFO: + rqBoardInfo(); + break; + + case RQ_INT: + rqTestIntConv(); + break; + + default: + break; + } } int main() diff --git a/requests.cpp b/requests.cpp new file mode 100644 index 0000000..236b99a --- /dev/null +++ b/requests.cpp @@ -0,0 +1,18 @@ +#include "requests.h" + +void rqTestConnection() +{ + uint8_t dummy = usart.readByte(); + usart.writeByte(USART::MSG_OK); + usart.writeByte(dummy); +} + +void rqBoardInfo() +{ + +} + +void rqTestIntConv() +{ + usart.writeInt(usart.readInt() * 3); +} diff --git a/requests.h b/requests.h new file mode 100644 index 0000000..b62c9b2 --- /dev/null +++ b/requests.h @@ -0,0 +1,16 @@ +#ifndef REQUESTS_H +#define REQUESTS_H + +#include "global_vars.h" + +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; + +void rqTestConnection(void); +void rqBoardInfo(void); +void rqTestIntConv(void); +void rqTestLongConv(void); + +#endif // REQUESTS_H diff --git a/usart.cpp b/usart.cpp index b50c905..4ef8f5b 100644 --- a/usart.cpp +++ b/usart.cpp @@ -19,8 +19,24 @@ void USART::writeByte(uint8_t b) while(!(UCSR0A & _BV(TXC0))); } + +void USART::writeInt(uint16_t v) +{ + UDR0 = v & 0xFF; + v >>= 8; + UDR0 = v & 0xFF; + while(!(UCSR0A & _BV(TXC0))); +} + uint8_t USART::readByte() { while (!(UCSR0A & (1<<RXC0))); return UDR0; } + +uint16_t USART::readInt() +{ + uint16_t v = readByte(); + v |= readByte() << 8; + return v; +} diff --git a/usart.h b/usart.h index 39bdee1..6a7cf29 100644 --- a/usart.h +++ b/usart.h @@ -10,8 +10,13 @@ class USART { public: void init(void); + void writeByte(uint8_t); + void writeInt(uint16_t); + void writeLong(uint32_t); uint8_t readByte(void); + uint16_t readInt(void); + uint32_t readLong(void); constexpr static uint8_t MSG_OK = 0xFF; constexpr static uint8_t MSG_FAIL = 0xFE;