verbesserte Stabilitaet

This commit is contained in:
Tristan Krause 2019-03-28 15:22:17 +01:00
parent bca001bc2e
commit 58d59b00e2
6 changed files with 126 additions and 70 deletions

BIN
B15F.elf

Binary file not shown.

146
B15F.hex
View file

@ -8,14 +8,14 @@
:100070000C9489000C9489000C9489000C948900DC
:100080000C9489000C9489000C948900E900EB0021
:10009000ED00E400EF00F100F300F500F700F900D7
:1000A000FB00FD00D804D504D2049B04CF04CC048B
:1000B000C904C604C304C004BD04DB04DE04112467
:1000A000FB00FD0051054E054B05140548054505AF
:1000B00042053F053C053905360554055705112411
:1000C0001FBECFEFD0E4DEBFCDBF11E0A0E0B1E0B6
:1000D000E0E2FAE000E00BBF02C007900D92A2320E
:1000D000E2E1FBE000E00BBF02C007900D92A2320C
:1000E000B107D9F721E0A2E2B1E001C01D92A4332B
:1000F000B207E1F710E0CFE5D0E004C02197FE01A0
:100100000E940505CE35D107C9F70E9497040C94CB
:100110000E050C94000083E391E00E94000160E072
:100100000E947E05CE35D107C9F70E9410050C94D8
:1001100087050C94000083E391E00E94000160E0F9
:1001200080E391E00E9443016FEF80E391E00E9441
:10013000640160E08DE291E00E9443016FEF8DE287
:1001400091E00E9464016FEF8AE291E00E946401F5
@ -24,12 +24,12 @@
:10017000A895809160008861809360001092600073
:100180000FBE08950FB6F894A8958091600088611D
:1001900080936000109260000FBE82E291E00E94A6
:1001A0006B03E82F98E088E10FB6F894A895809348
:1001A000D403E82F98E088E10FB6F894A8958093DF
:1001B00060000FBE90936000A8958E2F90E0FC0128
:1001C0003197EC30F10508F00895EA5BFF4F0C948D
:1001D00005050C9483030C9494030C94B8030C94BD
:1001E000C5030C94D8030C94EB030C94F4030C9407
:1001F000FD030C9410040C9423040C943104089512
:1001D0007E050C94EC030C94FD030C9421040C9408
:1001E0002E040C9441040C9454040C945D040C945F
:1001F00066040C9479040C948C040C949A0408956D
:1002000084B1806B84B926988AB18C618AB980E503
:100210008CBD81E08DBD8BB1837E8BB95A9A5B9A80
:100220005C9A08958BB1837E8BB98BB160FD10C051
@ -107,60 +107,76 @@
:1006A000C00085FFFCCF7093C60008958091C00004
:1006B00085FFFCCF4093C6009FEF940F442351F079
:1006C000FB0121918091C00085FFFCCF2093C600E3
:1006D0009150B8F708958091C00087FFFCCF8091BA
:1006E000C60008958091C00087FFFCCF2091C6000E
:1006F00030E09091C00097FFFCCF8091C600A90127
:10070000582BCA010895CF9382E291E00E946B03B7
:10071000C82F6FEF82E291E00E9442036C2F82E2C9
:1007200091E0CF910C94420363E082E291E00E9459
:1007300042034CE066E171E082E291E00E945603E0
:1007400049E06DE071E082E291E00E9456034CE0E6
:1007500061E071E082E291E00E9456038091000125
:10076000811101C008956FEF82E291E00C94420381
:1007700082E291E00E947203BC01660F771F680F4E
:10078000791F82E291E00C94490382E291E00E9499
:100790006B03682F80E391E00E9485018091000146
:1007A000811101C008956FEF82E291E00C94420341
:1007B00082E291E00E946B03682F8DE291E00E943B
:1007C000850180910001811101C008956FEF82E2DF
:1007D00091E00C94420380E391E00E94EA01682FCB
:1007E00082E291E00C9442038DE291E00E94EA01E2
:1007F000682F82E291E00C94420382E291E00E9431
:100800007203BC0187E291E00E9412028091000114
:10081000811101C008956FEF82E291E00C944203D0
:1008200082E291E00E947203BC0184E291E00E94A6
:10083000120280910001811101C008956FEF82E2E0
:1008400091E00C94420382E291E00E946B03682FD6
:1008500083E291E00E944102BC0182E291E00C94AB
:1008600049038F929F92AF92BF92CF92DF92EF9205
:10087000FF920F931F93CF93DF9382E291E00E9448
:100880006B03882E82E291E00E946B03982E82E235
:1008900091E00E947203EC0182E291E00E947203F7
:1008A0005C0182E291E00E9472038C016FEF82E2B0
:1008B00091E00E944203A09E6001A19ED00CB09ED8
:1008C000D00C1124CC15DD050CF5BE0187E291E0BA
:1008D0000E941202A895682D83E291E00E944102D5
:1008E0007C01692D83E291E00E9441028C01B701F5
:1008F00082E291E00E944903B80182E291E00E9405
:100900004903CA0DDB1DCC15DD05FCF26FEF82E259
:1009100091E0DF91CF911F910F91FF90EF90DF90C9
:10092000CF90BF90AF909F908F900C9442030E9405
:100930008B00D8E1C8E00FB6F894A89580916000CC
:10094000886180936000109260000FBE82E291E0A7
:100950000E946B030FB6F894A895D09360000FBE69
:10096000C0936000A89590E0FC013197EC30F10550
:1009700010F7EE5AFF4F0C9405050E942304DBCFBD
:100980000E941004D8CF0E94FD03D5CF0E94F4032B
:10099000D2CF0E94EB03CFCF0E94D803CCCF0E94CE
:1009A000C503C9CF0E94B803C6CF0E949403C3CF2A
:1009B0000E948303C0CF0E943104BDCF83E391E046
:1009C0000E94FF0042E063E371E080E391E00E9457
:1009D0003E0143E063E371E08DE291E00E943E015D
:1009E00045E063E371E08AE291E00E943E0140E06D
:1009F00063E371E087E291E00E940D0241E063E36E
:100A000071E084E291E00C940D02EE0FFF1F0024D0
:100A1000001C0BBE0790F691E02D0994F894FFCFCF
:100A200001626F617264696E666F2E680031333ADD
:100A300033333A3430004D61722032382032303155
:020A400039007B
:1006D0009150B8F708958091C00085FFFCCF4093FA
:1006E000C6005FEF540F442309F45CC0FB0120E017
:1006F00041E9DF0190818091C00085FFFCCF90939C
:10070000C60031969C91822F892780FD842790E036
:1007100095958795282F80FF02C0242F2827822FA8
:1007200090E095958795282F80FF02C0242F2827D9
:1007300030E035952795822F20FF02C0842F822735
:1007400090E095958795282F80FF02C0242F2827B9
:1007500030E035952795822F20FF02C0842F822715
:1007600090E095958795282F80FF02C0242F282799
:1007700030E035952795822F20FF02C0842F8227F5
:10078000282F2695515008F0B4CF8091C00085FFE6
:10079000FCCF2093C6008091C00087FFFCCF8091E2
:1007A000C600089520E0F1CF8091C00087FFFCCF04
:1007B0008091C60008958091C00087FFFCCF2091F2
:1007C000C60030E09091C00097FFFCCF8091C6003A
:1007D000A901582BCA010895CF9382E291E00E94AB
:1007E000D403C82F6FEF82E291E00E9442036C2F86
:1007F00082E291E0CF910C94420363E082E291E0C7
:100800000E9442034CE066E171E082E291E00E94C6
:10081000560349E06DE071E082E291E00E945603E8
:100820004CE061E071E082E291E00E945603809129
:100830000001811101C008956FEF82E291E00C94F4
:10084000420382E291E00E94DB03BC01660F771F46
:10085000680F791F82E291E00C94490382E291E0F3
:100860000E94D403682F80E391E00E94850180916B
:100870000001811101C008956FEF82E291E00C94B4
:10088000420382E291E00E94D403682F8DE291E05E
:100890000E94850180910001811101C008956FEFD0
:1008A00082E291E00C94420380E391E00E94EA012D
:1008B000682F82E291E00C9442038DE291E00E9465
:1008C000EA01682F82E291E00C94420382E291E017
:1008D0000E94DB03BC0187E291E00E94120280913A
:1008E0000001811101C008956FEF82E291E00C9444
:1008F000420382E291E00E94DB03BC0184E291E0CA
:100900000E94120280910001811101C008956FEFD1
:1009100082E291E00C94420382E291E00E94D403CF
:10092000682F83E291E00E944102BC0182E291E0E3
:100930000C9449038F929F92AF92BF92CF92DF9215
:10094000EF92FF920F931F93CF93DF9300D000D0CD
:10095000CDB7DEB782E291E00E94D403B82E82E2E6
:1009600091E00E94D403A82E82E291E00E94DB0372
:100970008C0182E291E00E94DB037C0182E291E043
:100980000E94DB034C016FEF82E291E00E94420380
:10099000E89C6001E99CD00CF89CD00C11240C154B
:1009A0001D05C4F5B80187E291E00E941202A895E6
:1009B0006B2D83E291E00E9441029A8389836A2D24
:1009C00083E291E00E9441029C838B8302C08F3FAF
:1009D000E1F0A89544E0BE016F5F7F4F82E291E0B5
:1009E0000E946B038111F3CF0F900F900F900F9027
:1009F000DF91CF911F910F91FF90EF90DF90CF90FB
:100A0000BF90AF909F908F9008950E0D1F1D0C15F5
:100A10001D0544F26FEF82E291E00E944203E4CFB1
:100A20000E948B00D8E1C8E00FB6F894A895809199
:100A30006000886180936000109260000FBE82E2C7
:100A400091E00E94D4030FB6F894A895D09360006B
:100A50000FBEC0936000A89590E0FC013197EC3088
:100A6000F10510F7EE5AFF4F0C947E050E948C049E
:100A7000DBCF0E947904D8CF0E946604D5CF0E94B4
:100A80005D04D2CF0E945404CFCF0E944104CCCF4A
:100A90000E942E04C9CF0E942104C6CF0E94FD03EC
:100AA000C3CF0E94EC03C0CF0E949A04BDCF83E362
:100AB00091E00E94FF0042E063E371E080E391E097
:100AC0000E943E0143E063E371E08DE291E00E9409
:100AD0003E0145E063E371E08AE291E00E943E015D
:100AE00040E063E371E087E291E00E940D0241E0A3
:100AF00063E371E084E291E00C940D02EE0FFF1FBE
:100B00000024001C0BBE0790F691E02D0994F89488
:020B1000FFCF15
:100B120001626F617264696E666F2E680031353AE8
:100B220032303A3334004D61722032382032303163
:020B3200390088
:00000001FF

View file

@ -1 +1 @@
<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>
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA1284"/><Files/></AVRWorkspace>

View file

@ -96,10 +96,26 @@ void rqAdcDacStroke()
{
dac0.setValue(i);
wdt_reset();
uint16_t a = adu.getValue(channel_a);
uint16_t b = adu.getValue(channel_b);
usart.writeInt(a);
usart.writeInt(b);
union doubleword
{
uint16_t word[2];
uint8_t byte[4];
};
union doubleword dw;
dw.word[0] = adu.getValue(channel_a);
dw.word[1] = adu.getValue(channel_b);
uint8_t ret = 0;
do
{
wdt_reset();
ret = usart.writeBlock(&(dw.byte[0]), 4);
if(ret == 0)
return;
} while(ret != USART::MSG_OK);
}
usart.writeByte(USART::MSG_OK);

View file

@ -45,6 +45,28 @@ void USART::writeStr(const char* str, uint8_t len)
writeByte(*str++);
}
uint8_t USART::writeBlock(uint8_t* ptr, uint8_t len)
{
writeByte(len);
uint8_t crc = 0;
while(len--)
{
writeByte(*ptr);
crc ^= *ptr++;
for (uint8_t i = 0; i < 8; i++)
{
if (crc & 1)
crc ^= CRC7_POLY;
crc >>= 1;
}
}
writeByte(crc);
return readByte();
}
uint8_t USART::readByte()
{
while (!(UCSR0A & (1<<RXC0)));

View file

@ -6,6 +6,7 @@
#include <stdint.h>
constexpr uint32_t BAUDRATE = 115200; // 38400
constexpr uint8_t CRC7_POLY = 0x91;
class USART
{
@ -16,6 +17,7 @@ public:
void writeInt(uint16_t);
void writeLong(uint32_t);
void writeStr(const char*, uint8_t);
uint8_t writeBlock(uint8_t*, uint8_t);
uint8_t readByte(void);
uint16_t readInt(void);
uint32_t readLong(void);