ADC Prescaler wird automatisch eingestellt.

This commit is contained in:
Toberfra 2022-02-07 19:45:25 +01:00
parent 191e3d0fde
commit bb6c929ba9
2 changed files with 64 additions and 0 deletions

View File

@ -0,0 +1,9 @@
#include "analogDigital.h"
void AnalogDigital::setup(){
Motor::setup();
ADCSRA &= ~7 ;
ADCSRA |= ADC_PRESCALER ;
}

View File

@ -1,10 +1,65 @@
#ifndef ANALOG_GIGITAL_H
#define ANALOG_GIGITAL_H
#define ADC_PRESCALER 1 //ADC_Prescaler / 2
#define ADC_PRESCALER_FAKTOR 2
#if F_CPU > 400000L // 400kHz / 4 = 100kHz
#undef ADC_PRESCALER
#undef ADC_PRESCALER_FAKTOR
#define ADC_PRESCALER 2 //ADC_Prescaler / 4
#define ADC_PRESCALER_FAKTOR 4
#endif
#if F_CPU > 800000L // 800kHz / 8 = 100kHz
#undef ADC_PRESCALER
#undef ADC_PRESCALER_FAKTOR
#define ADC_PRESCALER 3 //ADC_Prescaler / 4
#define ADC_PRESCALER_FAKTOR 8
#endif
#if F_CPU > 1600000L // 1.6MHz / 16 = 100kHz
#undef ADC_PRESCALER
#undef ADC_PRESCALER_FAKTOR
#define ADC_PRESCALER 4 //ADC_Prescaler / 16
#define ADC_PRESCALER_FAKTOR 16
#endif
#if F_CPU > 3200000L // 3.2MHz / 32 = 100kHz
#undef ADC_PRESCALER
#undef ADC_PRESCALER_FAKTOR
#define ADC_PRESCALER 5 //ADC_Prescaler / 32
#define ADC_PRESCALER_FAKTOR 32
#endif
#if F_CPU > 6400000L // 6.4MHz / 64 = 100kHz
#undef ADC_PRESCALER
#undef ADC_PRESCALER_FAKTOR
#define ADC_PRESCALER 6 //ADC_Prescaler / 64
#define ADC_PRESCALER_FAKTOR 64
#endif
#if F_CPU > 12800000L // 12.8MHz / 128 = 100kHz
#undef ADC_PRESCALER
#undef ADC_PRESCALER_FAKTOR
#define ADC_PRESCALER 7//ADC_Prescaler / 128
#define ADC_PRESCALER_FAKTOR 128
#endif
#define F_ADC (F_CPU / ADC_PRESCALER_FAKTOR)
#include "motor.h"
class AnalogDigital : public Motor{
public:
static void setup();
};