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 :100050000C9464000C9464000C9464000C94640090
:100060000C9464000C9464000C9464000C94640080 :100060000C9464000C9464000C9464000C94640080
:100070000C9464000C9464000C9464000C94640070 :100070000C9464000C9464000C9464000C94640070
:100080000C9464000C9464000C946400C602112467 :100080000C9464000C9464000C9464000A03112422
:100090001FBECFEFD0E4DEBFCDBF21E0A0E0B1E0D6 :100090001FBECFEFD0E4DEBFCDBF21E0A0E0B1E0D6
:1000A00001C01D92A131B207E1F710E0C7E4D0E032 :1000A00001C01D92A231B207E1F710E0C7E4D0E031
:1000B00004C02197FE010E94ED02C634D107C9F7A2 :1000B00004C02197FE010E943103C634D107C9F75D
:1000C0000E94C1020C94F6020C9400001F920F9241 :1000C0000E94F4020C943A030C9400001F920F92C9
:1000D0000FB60F92112491E085B1892785B92FEFD2 :1000D0000FB60F92112491E085B1892785B92FEFD2
:1000E00034E38CE0215030408040E1F700C0000054 :1000E00034E38CE0215030408040E1F700C0000054
:1000F000F3CF80E191E00E949B0060E08DE091E011 :1000F000F3CF81E191E00E94B40060E08EE091E0F6
:100100000E94DE006FEF8DE091E00E94FF0060E052 :100100000E94F7006FEF8EE091E00E94180160E01E
:100110008AE091E00E94DE006FEF8AE091E00E94A9 :100110008BE091E00E94F7006FEF8BE091E00E948E
:10012000FF006FEF87E091E00E94FF0080E091E028 :1001200018016FEF88E091E00E94180181E091E0F2
:100130000C94D401089584B1806B84B926988AB157 :100130000E94ED0180E091E00C94DA02CF9380E020
:100140008C618AB980E58CBD81E08DBD8BB1837EE9 :1001400091E00E94ED0280E091E00E94ED02C82F54
:100150008BB95A9A5B9A5C9A08958BB1837E8BB95E :100150006FEF80E091E00E94E6026C2F80E091E07A
:100160008BB160FD10C090E0892B8BB98BB161FD24 :10016000CF910C94E602089584B1806B84B92698EF
:1001700010C090E0892B8BB98BB162FD10C090E06C :100170008AB18C618AB980E58CBD81E08DBD8BB17F
:10018000892B8BB9089594E0892B8BB98BB161FFD2 :10018000837E8BB95A9A5B9A5C9A08958BB1837E71
:10019000F0CF98E0892B8BB98BB162FFF0CF90E163 :100190008BB98BB160FD10C090E0892B8BB98BB10E
:1001A000892B8BB908956EBD0DB407FEFDCF8EB5BA :1001A00061FD10C090E0892B8BB98BB162FD10C04E
:1001B0000895FC0171836083428308951F93CF9358 :1001B00090E0892B8BB9089594E0892B8BB98BB192
:1001C000DF93EC01162F6A81888199810E94AD002E :1001C00061FFF0CF98E0892B8BB98BB162FFF0CF44
:1001D00060E4888199810E94D30060E088819981E0 :1001D00090E1892B8BB908956EBD0DB407FEFDCF5C
:1001E0000E94D300612F888199810E94D30067E02B :1001E0008EB50895FC0171836083428308951F9347
:1001F00088819981DF91CF911F910C94AD001F935D :1001F000CF93DF93EC01162F6A81888199810E9449
:10020000CF93DF93EC01162F6A81888199810E9438 :10020000C60060E4888199810E94EC0060E08881EA
:10021000AD0060E4888199810E94D30061E088810B :1002100099810E94EC00612F888199810E94EC00F5
:1002200099810E94D300612F888199810E94D30017 :1002200067E088819981DF91CF911F910C94C6007E
:1002300067E088819981DF91CF911F910C94AD0087 :100230001F93CF93DF93EC01162F6A8188819981F8
:100240001F93CF93DF93EC01162F6A8188819981E8 :100240000E94C60060E4888199810E94EC0061E010
:100250000E94AD0060E4888199810E94D30062E130 :10025000888199810E94EC00612F888199810E9498
:10026000888199810E94D300612F888199810E94A1 :10026000EC0067E088819981DF91CF911F910C9418
:10027000D30067E088819981DF91CF911F910C9421 :10027000C6001F93CF93DF93EC01162F6A8188810C
:10028000AD001F93CF93DF93EC01162F6A81888115 :1002800099810E94C60060E4888199810E94EC00F7
:1002900099810E94AD0060E4888199810E94D30019 :1002900062E1888199810E94EC00612F88819981B7
:1002A00063E1888199810E94D300612F88819981BF :1002A0000E94EC0067E088819981DF91CF911F91D6
:1002B0000E94D30067E088819981DF91CF911F91DF :1002B0000C94C6001F93CF93DF93EC01162F6A8135
:1002C0000C94AD001F93CF93DF93EC016A8188817A :1002C000888199810E94C60060E4888199810E949A
:1002D00099810E94AD0061E4888199810E94D300D8 :1002D000EC0063E1888199810E94EC00612F8881A4
:1002E00062E1888199810E94D30060E088819981D0 :1002E00099810E94EC0067E088819981DF91CF912C
:1002F0000E94D300182F67E0888199810E94AD0089 :1002F0001F910C94C6001F93CF93DF93EC016A818A
:10030000812FDF91CF911F9108951F93CF93DF939A :10030000888199810E94C60061E4888199810E9458
:10031000EC016A81888199810E94AD0061E4888145 :10031000EC0062E1888199810E94EC0060E08881B4
:1003200099810E94D30063E1888199810E94D30062 :1003200099810E94EC00182F67E0888199810E94D2
:1003300060E0888199810E94D300182F67E088814E :10033000C600812FDF91CF911F9108951F93CF9316
:1003400099810E94AD00812FDF91CF911F91089577 :10034000DF93EC016A81888199810E94C60061E493
:10035000FC01428308950F931F93CF93DF93EC0129 :10035000888199810E94EC0063E1888199810E94E3
:100360008B016A81888199810E94AD00B8010024C7 :10036000EC0060E0888199810E94EC00182F67E022
:10037000660F771F001C660F771F001C672F702DFC :10037000888199810E94C600812FDF91CF911F91C2
:10038000888199810E94D300602F660F660F888153 :100380000895FC01428308950F931F93CF93DF9349
:1003900099810E94D30067E088819981DF91CF9194 :10039000EC018B016A81888199810E94C600B801B5
:1003A0001F910F910C94AD0010927C0087E8809310 :1003A0000024660F771F001C660F771F001C672F45
:1003B0007A00089580917C00807E682B60937C0099 :1003B000702D888199810E94EC00602F660F660F76
:1003C00080917A00806480937A0083EA91E00197BB :1003C000888199810E94EC0067E088819981DF91A2
:1003D000F1F700C0000080917A0086FDFCCF80918B :1003D000CF911F910F910C94C60010927C0087E87A
:1003E00078009091790008950F931F93CF93DF9336 :1003E00080937A00089580917C00807E682B6093D2
:1003F00061E08DE091E00E942001C1E0D0E001E0E9 :1003F0007C0080917A00806480937A0083EA91E0A7
:1004000010E02FEF84E39CE0215080409040E1F722 :100400000197F1F700C0000080917A0086FDFCCFD3
:1004100000C00000B8010C2E01C0660F0A94EAF774 :10041000809178009091790008950F931F93CF9366
:100420008DE091E00E9420012196C930D10549F765 :10042000DF9361E08EE091E00E943901C1E0D0E00D
:10043000DF91CF911F910F9108950F931F93CF9349 :1004300001E010E02FEF84E39CE0215080409040E9
:10044000DF9361E08AE091E00E942001C1E0D0E00A :10044000E1F700C00000B8010C2E01C0660F0A944D
:1004500001E010E02FEF84E39CE0215080409040C9 :10045000EAF78EE091E00E9439012196C930D1057A
:10046000E1F700C00000B8010C2E01C0660F0A942D :1004600049F7DF91CF911F910F9108950F931F933B
:10047000EAF78AE091E00E9420012196C930D10577 :10047000CF93DF9361E08BE091E00E943901C1E00E
:1004800049F7DF91CF911F910F910895CF93DF939B :10048000D0E001E010E02FEF84E39CE021508040B9
:10049000C0E0D0E0BE0184E091E00E94AB0187E8BB :100490009040E1F700C00000B8010C2E01C0660FCB
:1004A00093E10197F1F700C000002196C11594E097 :1004A0000A94EAF78BE091E00E9439012196C93065
:1004B000D90781F72FE78AE196E0215080409040EC :1004B000D10549F7DF91CF911F910F910895CF9307
:1004C000E1F700C0000060E070E084E091E0DF91BF :1004C000DF93C0E0D0E0BE0185E091E00E94C4016E
:1004D000CF910C94AB01CF93DF93C0E0D0E0BE018D :1004D00087E893E10197F1F700C000002196C1156C
:1004E00081E091E00E94AB0187E893E10197F1F789 :1004E00094E0D90781F72FE78AE196E02150804018
:1004F00000C000002196C11594E0D90781F72FE7CD :1004F0009040E1F700C0000060E070E085E091E02E
:100500008AE196E0215080409040E1F700C0000071 :10050000DF91CF910C94C401CF93DF93C0E0D0E092
:1005100060E070E081E091E0DF91CF910C94AB015D :10051000BE0182E091E00E94C40187E893E1019767
:1005200060E080E091E00E94DA01BC0184E091E0AB :10052000F1F700C000002196C11594E0D90781F7CA
:100530000E94AB0161E080E091E00E94DA01BC0121 :100530002FE78AE196E0215080409040E1F700C02B
:1005400081E091E00E94AB018DE091E00E94850185 :10054000000060E070E082E091E0DF91CF910C94D8
:10055000682F8DE091E00E94200187E091E00E94E9 :10055000C40160E081E091E00E94F301BC0185E00C
:100560008501682F8AE091E00E942001D9CF0E9486 :1005600091E00E94C40161E081E091E00E94F3010A
:10057000F4010E941D020E9446020E946B020E942A :10057000BC0182E091E00E94C4018EE091E00E9403
:1005800090020E9479000E94B702FDCF80E191E0C5 :100580009E01682F8EE091E00E94390188E091E0A1
:100590000E949A0042E060E171E08DE091E00E94EB :100590000E949E01682F8BE091E00E943901D9CF23
:1005A000D90043E060E171E08AE091E00E94D90067 :1005A0000E940D020E9436020E945F020E94840295
:1005B00045E060E171E087E091E00E94D90040E011 :1005B0000E94A90288E18093C10086E08093C20076
:1005C00060E171E084E091E00E94A80141E060E117 :1005C0001092C5008FE18093C40008956093C60027
:1005D00071E081E091E00C94A801EE0FFF1F002470 :1005D0008091C00086FFFCCF08958091C00087FF06
:1005E000001C0BBE0790F691E02D0994F894FFCF04 :1005E000FCCF8091C60008950E94790080E091E0E0
:1005F0000E94ED0280E091E00E94ED02C82F6FEFB3
:1006000080E091E00E94E6026C2F80E091E00E9481
:10061000E602ECCF81E191E00E94B30042E061E1AB
:1006200071E08EE091E00E94F20043E061E171E050
:100630008BE091E00E94F20045E061E171E088E02A
:1006400091E00E94F20040E061E171E085E091E01C
:100650000E94C10141E061E171E082E091E00C940F
:10066000C101EE0FFF1F0024001C0BBE0790F69186
:08067000E02D0994F894FFCF7E
:00000001FF :00000001FF

View file

@ -10,9 +10,9 @@ OBJCOPY_PATH = C:\avr8-gnu-toolchain-win32_x86\bin\avr-objcopy.exe
OUTPUT = B15F.elf OUTPUT = B15F.elf
HEX = B15F.hex 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 = 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) COMPILE = $(COMPILER_PATH) $(CFLAGS)

View file

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

View file

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

View file

@ -29,6 +29,15 @@ void initAll()
sw.setDirB(0xFF); // alle Eingang sw.setDirB(0xFF); // alle Eingang
adu.init(); 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() int main()
@ -43,7 +52,7 @@ int main()
while(1) while(1)
{ {
testAll(); handleRequest();
} }
return 0; 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