Wie starte ich den ADC (Interruptmodus)

Gast #1750861
Lesenswert?

Hallo,

ich möchte zu bestimmten Zeitpunkten je EINE Messung mit dem ADC machen. 
Nach erfolgter Messung soll ein Interrupt ausgelöst werden der dann die 
Messwertverarbeitung übernimmt. Dazu initialisiere ich den ADC so:
1
void ADC_init()
2
{
3
  ADMUX = 5;                      // Kanal waehlen
4
    ADMUX |= (1<<REFS0); // interne Referenzspannung nutzen
5
     //    ADC aktivieren, Teilerfaktor 8, ADC Interrupt aktiviert
6
  ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0 | 1<<ADIE); 
7
}

Erste Frage: ist das so o.k.? Nach dem Aufruf von ADC_init() in main() 
wird natürlich noch sei(); aufgerufen.

Zweite Frage: Wie veranlasse ich den ADC jetzt zu einer Wandlung?

Gruß
Ralf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren