int test geht

This commit is contained in:
Tristan Krause 2019-03-26 15:02:58 +01:00
parent fae65afe8b
commit adfa389abe
10 changed files with 179 additions and 98 deletions

File diff suppressed because one or more lines are too long

BIN
B15F.elf

Binary file not shown.

191
B15F.hex
View file

@ -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

View file

@ -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)

View file

@ -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>

View file

@ -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()

18
requests.cpp Normal file
View file

@ -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);
}

16
requests.h Normal file
View file

@ -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

View file

@ -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;
}

View file

@ -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;