This commit is contained in:
Tristan Krause 2019-03-25 15:40:36 +01:00
parent 472d0135df
commit f55fd367ee
7 changed files with 71 additions and 22 deletions

BIN
B15F.elf

Binary file not shown.

View file

@ -6,11 +6,11 @@
:100050000C9464000C9464000C9464000C94640090
:100060000C9464000C9464000C9464000C94640080
:100070000C9464000C9464000C9464000C94640070
:100080000C9464000C9464000C946400C601112468
:100080000C9464000C9464000C946400E801112446
:100090001FBECFEFD0E4DEBFCDBF21E0A0E0B1E0D6
:1000A00001C01D92AA30B207E1F710E0C7E4D0E02A
:1000B00004C02197FE010E94DF01C634D107C9F7B1
:1000C0000E949E010C94E8010C9400001F920F9274
:1000A00001C01D92AB30B207E1F710E0C7E4D0E029
:1000B00004C02197FE010E940102C634D107C9F78E
:1000C0000E94BE010C940A020C9400001F920F9231
:1000D0000FB60F921124289A2FEF84E39CE0215051
:1000E00080409040E1F700C0000028982FEF84E3A3
:1000F0009CE0215080409040E1F700C00000EBCF31
@ -49,15 +49,19 @@
:10030000B8010024660F771F001C660F771F001CC2
:10031000672F702D888199810E949D00602F660F44
:10032000660F888199810E949D0067E0888199818C
:10033000DF91CF911F910F910C949300209A2898F0
:10034000A895789489E091E00E94810060E086E0C1
:1003500091E00E94A8006FEF86E091E00E94C90042
:100360006FEF83E091E00E94C900C0E0D0E0BE01E1
:1003700080E091E00E94750182E48A95F1F700C067
:100380002196C11584E0D80781F3F1CF89E091E08F
:100390000E94800042E069E071E086E091E00E9406
:1003A000A30045E069E071E083E091E00E94A300D2
:1003B00040E069E071E080E091E00C947201EE0FA2
:1003C000FF1F0024001C0BBE0790F691E02D09943E
:0403D000F894FFCFCF
:10033000DF91CF911F910F910C94930010927C004C
:1003400087E880937A00089580917C00807E682BF6
:1003500060937C0080917A00806480937A0083EAC5
:1003600091E00197F1F700C0000080917A0086FDCE
:10037000FCCF8091780090917900089581E6809378
:100380006000209A2898A89578948AE091E00E94CD
:10039000810060E087E091E00E94A8006FEF87E0B5
:1003A00091E00E94C9006FEF84E091E00E94C900D3
:1003B00080E091E00E949E0166E080E091E00E9472
:1003C000A401BC0181E091E00E947501A895F4CFE1
:1003D0008AE091E00E94800042E06AE071E087E0FC
:1003E00091E00E94A30045E06AE071E084E091E0C2
:1003F0000E94A30040E06AE071E081E091E00C948B
:100400007201EE0FFF1F0024001C0BBE0790F69137
:08041000E02D0994F894FFCFE0
:00000001FF

View file

@ -12,7 +12,7 @@ OUTPUT = B15F.elf
HEX = B15F.hex
CFLAGS = -std=c++14 -O3 -mmcu=atmega1284 -DF_CPU=20000000 -DPIO_DISABLE_I2C
LDFLAGS =
OBJECTS = main.o spi.o mcp23s17.o tlc5615.o
OBJECTS = main.o spi.o mcp23s17.o tlc5615.o adu.o
COMPILE = $(COMPILER_PATH) $(CFLAGS)

28
adu.cpp Normal file
View file

@ -0,0 +1,28 @@
#include "adu.h"
void ADU::init()
{
// externe Referenz an AREF
ADMUX = 0;
// ADC aktiviert, prescaler = 128
ADCSRA = _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1) | _BV(ADPS0);
}
uint16_t ADU::getValue(uint8_t channel)
{
// lege Kanal fest
ADMUX = (ADMUX & 0xE0) | channel;
// starte Konvertierung
ADCSRA |= _BV(ADSC);
// warte Konvertierungszeit ab
_delay_us(13 * 1000000 * 128 / F_CPU + 1);
// warte auf Ende
while(ADCSRA & _BV(ADSC));
// liefere Ergebnis
return ADCW;
}

15
adu.h Normal file
View file

@ -0,0 +1,15 @@
#ifndef ADC_H
#define ADC_H
#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>
class ADU
{
public:
void init(void);
uint16_t getValue(uint8_t);
};
#endif // ADC_H

View file

@ -4,6 +4,7 @@
#include <avr/wdt.h>
#include "mcp23s17.h"
#include "tlc5615.h"
#include "adu.h"
#define LED B0
@ -12,6 +13,7 @@ SPI spi;
MCP23S17 beba0(spi, SPIADR::BEBA0);
MCP23S17 sw(spi, SPIADR::SWITCH);
TLC5615 dac0(spi, SPIADR::AA0);
ADU adu;
ISR(WDT_vect)
{
@ -27,7 +29,7 @@ ISR(WDT_vect)
int main()
{
//WDTCSR = _BV(WDIE) | _BV(WDP3) | _BV(WDP0);
WDTCSR = _BV(WDIE) | _BV(WDP3) | _BV(WDP0);
dMode(LED, OUT);
dWrite(LED, LOW);
wdt_reset();
@ -38,14 +40,13 @@ int main()
beba0.setDirA(0x00); // alle Ausgang
beba0.setDirB(0xFF); // alle Eingang
sw.setDirB(0xFF); // alle Eingang
adu.init();
while(1)
{
for(uint16_t i = 0; i < 1024; i++)
{
dac0.setValue(i);
_delay_us(10);
}
dac0.setValue(adu.getValue(6));
wdt_reset();
}
return 0;

1
spi.h
View file

@ -19,6 +19,7 @@ enum SPIADR {
AA1 = 1,
BEBA0 = 2,
BEBA1 = 3,
EXT = 4,
SWITCH = 5,
NONE = 7,
};