complex stroke erste version

This commit is contained in:
Tristan Krause 2019-03-27 10:33:26 +01:00
parent 0813bc740d
commit a4e4d0ef55
8 changed files with 192 additions and 171 deletions

BIN
B15F.elf

Binary file not shown.

291
B15F.hex
View file

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

View file

@ -22,7 +22,6 @@ uint16_t ADU::getValue(uint8_t channel)
// warte auf Ende
while(ADCSRA & _BV(ADSC));
// liefere Ergebnis
return ADCW;
}

View file

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

View file

@ -71,3 +71,25 @@ void rqAnalogRead()
uint16_t value = adu.getValue(channel);
usart.writeInt(value);
}
void rqAdcDacStroke()
{
int16_t start = static_cast<int16_t>(usart.readInt());
int16_t delta = static_cast<int16_t>(usart.readInt());
int16_t count = static_cast<int16_t>(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);
}

View file

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

View file

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

View file

@ -2,6 +2,7 @@
#define USART_H
#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>
constexpr uint16_t BAUDRATE = 38400UL; //9600UL//9600