Gast
#3911368
Hallo,
wie im Betreff erwähnt versuche ich gerade am ATmega2560 eine ISR zu
realisieren, die alle x Sekunden von verschiedenen AI ADC Werte erfasst.
Aus dem Datenblatt kann ich bisher entnehmen:
ADMUX – ADC Multiplexer Selection Register:
7 6 5 4 3 2 1 0
REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0
0 1 0 0 0 0 0 0
- BIT6: 5V Ref. Spg.
ADCSRA – ADC Control and Status Register A
7 6 5 4 3 2 1 0
ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0
0 0 1 0 0 1 1 1
- BIT0,2,3: Prescaler 128
- BIT5: ADC Auto Trigger Enable (Voraussetzung für Auto Triggerung)
ADCSRB – ADC Control and Status Register B
7 6 5 4 3 2 1 0
– ACME – – MUX5 ADTS2 ADTS1 ADTS0
0 0 0 0 0 1 0 1
- BIT0,2: Timer/Counter1 Compare Match B
TCCR1B – Timer/Counter 1 Control Register B
7 6 5 4 3 2 1 0
ICNC1 ICES1 – WGM13 WGM12 CS12 CS11 CS10
0 0 0 0 1 1 0 1
- BIT3: Clear Time on Compare (CTC)
- BIT0,2: Prescaler 1024
OCR1B = x (für x Sekunden)
Und jetzt hörts auf.
Ich bin mir darüber im Klaren, dass ich den ADC zu Beginn erstmal
erfassen lassen muss. Leider verstehe ich gerade nicht, wie die Syntax
sein müsste, um den ADC-Wert von zwei versch. analogen Eingängen alle x
Sekunden zu erfassen.
void init
{
//Setzen von Bits in den entspr. Registern
}
void main
{
//unwichtig
}
ISR(ADC_vect)
{
//absolut keine Ahnung
}
Ich würde mich über Unterstützung bzw. Lösungsansatz sehr freuen