im Moment fehlerhafte WDT Konfig

This commit is contained in:
Tristan Krause 2019-03-26 16:30:49 +01:00
parent adfa389abe
commit 7eb9573229
10 changed files with 273 additions and 124 deletions

File diff suppressed because one or more lines are too long

BIN
B15F.elf

Binary file not shown.

255
B15F.hex
View file

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

View file

@ -8,3 +8,5 @@ TLC5615 dac0(spi, SPIADR::AA0);
TLC5615 dac1(spi, SPIADR::AA1);
ADU adu;
USART usart;
bool ACK_MODE = 1;

View file

@ -15,4 +15,6 @@ extern TLC5615 dac1;
extern ADU adu;
extern USART usart;
extern bool ACK_MODE;
#endif // GLOBAL_VARS_H

View file

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

View file

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

View file

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

View file

@ -55,6 +55,10 @@ void testDAC1(void)
void testMirror()
{
// deaktiviere WDT
wdt_disable();
// Endlosschleife
while(1)
{
dac0.setValue(adu.getValue(0));

View file

@ -1,6 +1,7 @@
#ifndef SELFTEST_H
#define SELFTEST_H
#include <avr/wdt.h>
#include "global_vars.h"
void testAll(void);