diff --git a/Arduino/motor/src/KlappenSteuerung.cpp b/Arduino/motor/src/KlappenSteuerung.cpp index 2471884..17a73b3 100644 --- a/Arduino/motor/src/KlappenSteuerung.cpp +++ b/Arduino/motor/src/KlappenSteuerung.cpp @@ -25,6 +25,10 @@ KlappenSteuerung::~KlappenSteuerung() { } +void KlappenSteuerung::setupStatic(){ + AnalogDigital::setupStatic(); +} + // // Methods // diff --git a/Arduino/motor/src/KlappenSteuerung.h b/Arduino/motor/src/KlappenSteuerung.h index 471e839..e797abd 100644 --- a/Arduino/motor/src/KlappenSteuerung.h +++ b/Arduino/motor/src/KlappenSteuerung.h @@ -33,7 +33,7 @@ public: // Public attributes // - + static void setupStatic(); /** * @param pinA diff --git a/Arduino/motor/src/analogDigital.cpp b/Arduino/motor/src/analogDigital.cpp index 77e2145..532b93d 100644 --- a/Arduino/motor/src/analogDigital.cpp +++ b/Arduino/motor/src/analogDigital.cpp @@ -1,10 +1,46 @@ #include "analogDigital.h" +uint8_t AnalogDigital::aktuellerKanal = 0; +bool AnalogDigital::kanalFrei = true; -void AnalogDigital::setup(){ - Motor::setup(); +uint8_t AnalogDigital::mux; +uint8_t AnalogDigital::ref; +uint8_t AnalogDigital::la; + +void AnalogDigital::setupStatic() +{ + + ADCSRA &= ~7; + ADCSRA |= ADC_PRESCALER; + + ADCSRB = 5; // Timer/Counter1 compare match B + setLeftAdjust(0); + setRef(3); // Internal 1.1V voltage reference with external capacitor at AREF pin + setAdcAdmux(); - ADCSRA &= ~7 ; - ADCSRA |= ADC_PRESCALER ; + +} + +void AnalogDigital::setMux(uint8_t mux) +{ + AnalogDigital::mux = mux & 7; + AnalogDigital::setAdcAdmux(); +} + +void AnalogDigital::setRef(uint8_t ref) +{ + AnalogDigital::ref = ref & 3; +} + +void AnalogDigital::setLeftAdjust(uint8_t la) +{ + AnalogDigital::la = la & 1; +} + +void AnalogDigital::setAdcAdmux() +{ + ADMUX = (AnalogDigital::mux << MUX0) | + (AnalogDigital::ref << REFS0) | + (AnalogDigital::la << ADLAR); } \ No newline at end of file diff --git a/Arduino/motor/src/analogDigital.h b/Arduino/motor/src/analogDigital.h index ea37a1c..b128560 100644 --- a/Arduino/motor/src/analogDigital.h +++ b/Arduino/motor/src/analogDigital.h @@ -56,10 +56,33 @@ class AnalogDigital : public Motor{ - public: +public: + //AnalogDigital(); + + static void setupStatic(); + static bool setAdcKanal(uint8_t kanal); + +protected: + + static void setMux(uint8_t mux); + static void setRef(uint8_t ref); + static void setLeftAdjust(uint8_t la); + static void setAdcAdmux(); + +private: + + static uint8_t mux; + static uint8_t ref; + static uint8_t la; + + + static uint8_t aktuellerKanal; + static bool kanalFrei ; + + + + - static void setup(); - }; diff --git a/Arduino/motor/src/arduinoAnpassung.cpp b/Arduino/motor/src/arduinoAnpassung.cpp index 15f3f80..5f91664 100644 --- a/Arduino/motor/src/arduinoAnpassung.cpp +++ b/Arduino/motor/src/arduinoAnpassung.cpp @@ -22,3 +22,6 @@ void ArduinoAnpassung::loop(){ zeiger = zeiger->getNachfolgerElement(); } } + + + diff --git a/Arduino/motor/src/main.cpp b/Arduino/motor/src/main.cpp index fd9007b..b16561a 100644 --- a/Arduino/motor/src/main.cpp +++ b/Arduino/motor/src/main.cpp @@ -21,6 +21,7 @@ KlappenSteuerung klappe1 (M1A , M1B , M1SENSE , 5 ); void setup() { // put your setup code here, to run once: + KlappenSteuerung::setupStatic(); KlappenSteuerung::setMotorPwmPin(TIMER1_PWM_PIN); KlappenSteuerung::setup(); pinMode(LED_BUILTIN , OUTPUT);