echo befehl funktioniert

This commit is contained in:
Tristan Krause 2019-03-26 11:35:41 +01:00
parent 13e95264fb
commit fae65afe8b
8 changed files with 154 additions and 87 deletions

BIN
B15F.elf

Binary file not shown.

177
B15F.hex
View file

@ -6,91 +6,100 @@
:100050000C9464000C9464000C9464000C94640090
:100060000C9464000C9464000C9464000C94640080
:100070000C9464000C9464000C9464000C94640070
:100080000C9464000C9464000C946400C602112467
:100080000C9464000C9464000C9464000A03112422
:100090001FBECFEFD0E4DEBFCDBF21E0A0E0B1E0D6
:1000A00001C01D92A131B207E1F710E0C7E4D0E032
:1000B00004C02197FE010E94ED02C634D107C9F7A2
:1000C0000E94C1020C94F6020C9400001F920F9241
:1000A00001C01D92A231B207E1F710E0C7E4D0E031
:1000B00004C02197FE010E943103C634D107C9F75D
:1000C0000E94F4020C943A030C9400001F920F92C9
:1000D0000FB60F92112491E085B1892785B92FEFD2
:1000E00034E38CE0215030408040E1F700C0000054
:1000F000F3CF80E191E00E949B0060E08DE091E011
:100100000E94DE006FEF8DE091E00E94FF0060E052
:100110008AE091E00E94DE006FEF8AE091E00E94A9
:10012000FF006FEF87E091E00E94FF0080E091E028
:100130000C94D401089584B1806B84B926988AB157
:100140008C618AB980E58CBD81E08DBD8BB1837EE9
:100150008BB95A9A5B9A5C9A08958BB1837E8BB95E
:100160008BB160FD10C090E0892B8BB98BB161FD24
:1001700010C090E0892B8BB98BB162FD10C090E06C
:10018000892B8BB9089594E0892B8BB98BB161FFD2
:10019000F0CF98E0892B8BB98BB162FFF0CF90E163
:1001A000892B8BB908956EBD0DB407FEFDCF8EB5BA
:1001B0000895FC0171836083428308951F93CF9358
:1001C000DF93EC01162F6A81888199810E94AD002E
:1001D00060E4888199810E94D30060E088819981E0
:1001E0000E94D300612F888199810E94D30067E02B
:1001F00088819981DF91CF911F910C94AD001F935D
:10020000CF93DF93EC01162F6A81888199810E9438
:10021000AD0060E4888199810E94D30061E088810B
:1002200099810E94D300612F888199810E94D30017
:1002300067E088819981DF91CF911F910C94AD0087
:100240001F93CF93DF93EC01162F6A8188819981E8
:100250000E94AD0060E4888199810E94D30062E130
:10026000888199810E94D300612F888199810E94A1
:10027000D30067E088819981DF91CF911F910C9421
:10028000AD001F93CF93DF93EC01162F6A81888115
:1002900099810E94AD0060E4888199810E94D30019
:1002A00063E1888199810E94D300612F88819981BF
:1002B0000E94D30067E088819981DF91CF911F91DF
:1002C0000C94AD001F93CF93DF93EC016A8188817A
:1002D00099810E94AD0061E4888199810E94D300D8
:1002E00062E1888199810E94D30060E088819981D0
:1002F0000E94D300182F67E0888199810E94AD0089
:10030000812FDF91CF911F9108951F93CF93DF939A
:10031000EC016A81888199810E94AD0061E4888145
:1003200099810E94D30063E1888199810E94D30062
:1003300060E0888199810E94D300182F67E088814E
:1003400099810E94AD00812FDF91CF911F91089577
:10035000FC01428308950F931F93CF93DF93EC0129
:100360008B016A81888199810E94AD00B8010024C7
:10037000660F771F001C660F771F001C672F702DFC
:10038000888199810E94D300602F660F660F888153
:1003900099810E94D30067E088819981DF91CF9194
:1003A0001F910F910C94AD0010927C0087E8809310
:1003B0007A00089580917C00807E682B60937C0099
:1003C00080917A00806480937A0083EA91E00197BB
:1003D000F1F700C0000080917A0086FDFCCF80918B
:1003E00078009091790008950F931F93CF93DF9336
:1003F00061E08DE091E00E942001C1E0D0E001E0E9
:1004000010E02FEF84E39CE0215080409040E1F722
:1004100000C00000B8010C2E01C0660F0A94EAF774
:100420008DE091E00E9420012196C930D10549F765
:10043000DF91CF911F910F9108950F931F93CF9349
:10044000DF9361E08AE091E00E942001C1E0D0E00A
:1004500001E010E02FEF84E39CE0215080409040C9
:10046000E1F700C00000B8010C2E01C0660F0A942D
:10047000EAF78AE091E00E9420012196C930D10577
:1004800049F7DF91CF911F910F910895CF93DF939B
:10049000C0E0D0E0BE0184E091E00E94AB0187E8BB
:1004A00093E10197F1F700C000002196C11594E097
:1004B000D90781F72FE78AE196E0215080409040EC
:1004C000E1F700C0000060E070E084E091E0DF91BF
:1004D000CF910C94AB01CF93DF93C0E0D0E0BE018D
:1004E00081E091E00E94AB0187E893E10197F1F789
:1004F00000C000002196C11594E0D90781F72FE7CD
:100500008AE196E0215080409040E1F700C0000071
:1005100060E070E081E091E0DF91CF910C94AB015D
:1005200060E080E091E00E94DA01BC0184E091E0AB
:100530000E94AB0161E080E091E00E94DA01BC0121
:1005400081E091E00E94AB018DE091E00E94850185
:10055000682F8DE091E00E94200187E091E00E94E9
:100560008501682F8AE091E00E942001D9CF0E9486
:10057000F4010E941D020E9446020E946B020E942A
:1005800090020E9479000E94B702FDCF80E191E0C5
:100590000E949A0042E060E171E08DE091E00E94EB
:1005A000D90043E060E171E08AE091E00E94D90067
:1005B00045E060E171E087E091E00E94D90040E011
:1005C00060E171E084E091E00E94A80141E060E117
:1005D00071E081E091E00C94A801EE0FFF1F002470
:1005E000001C0BBE0790F691E02D0994F894FFCF04
: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
:00000001FF

View file

@ -10,9 +10,9 @@ OBJCOPY_PATH = C:\avr8-gnu-toolchain-win32_x86\bin\avr-objcopy.exe
OUTPUT = B15F.elf
HEX = B15F.hex
CFLAGS = -std=c++14 -O3 -mmcu=atmega1284 -DF_CPU=20000000 -DPIO_DISABLE_I2C
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
OBJECTS = main.o spi.o mcp23s17.o tlc5615.o adu.o selftest.o global_vars.o usart.o
COMPILE = $(COMPILER_PATH) $(CFLAGS)

View file

@ -7,3 +7,4 @@ MCP23S17 sw(spi, SPIADR::SWITCH);
TLC5615 dac0(spi, SPIADR::AA0);
TLC5615 dac1(spi, SPIADR::AA1);
ADU adu;
USART usart;

View file

@ -4,6 +4,7 @@
#include "mcp23s17.h"
#include "tlc5615.h"
#include "adu.h"
#include "usart.h"
extern SPI spi;
extern MCP23S17 beba0;
@ -12,5 +13,6 @@ extern MCP23S17 sw;
extern TLC5615 dac0;
extern TLC5615 dac1;
extern ADU adu;
extern USART usart;
#endif // GLOBAL_VARS_H

View file

@ -29,6 +29,15 @@ void initAll()
sw.setDirB(0xFF); // alle Eingang
adu.init();
usart.init();
}
void handleRequest()
{
const uint8_t req = usart.readByte();
uint8_t dummy = usart.readByte();
usart.writeByte(USART::MSG_OK);
usart.writeByte(dummy);
}
int main()
@ -43,7 +52,7 @@ int main()
while(1)
{
testAll();
handleRequest();
}
return 0;

26
usart.cpp Normal file
View file

@ -0,0 +1,26 @@
#include "usart.h"
void USART::init()
{
UCSR0B = _BV(RXEN0) | _BV(TXEN0);
// Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
UCSR0C = _BV(UCSZ00) |_BV(UCSZ01);// (1<<URSEL0)|(1<<UCSZ10)|(1<<UCSZ00);
// setze Baudrate
UBRR0H = (((F_CPU / (16UL * BAUDRATE))-1) >> 8) & 0xFF;
UBRR0L = ((F_CPU / (16UL * BAUDRATE))-1) & 0xFF;
}
void USART::writeByte(uint8_t b)
{
UDR0 = b;
while(!(UCSR0A & _BV(TXC0)));
}
uint8_t USART::readByte()
{
while (!(UCSR0A & (1<<RXC0)));
return UDR0;
}

20
usart.h Normal file
View file

@ -0,0 +1,20 @@
#ifndef USART_H
#define USART_H
#include <avr/io.h>
#include <stdint.h>
constexpr uint16_t BAUDRATE = 38400UL; //9600UL//9600
class USART
{
public:
void init(void);
void writeByte(uint8_t);
uint8_t readByte(void);
constexpr static uint8_t MSG_OK = 0xFF;
constexpr static uint8_t MSG_FAIL = 0xFE;
};
#endif // USART_H