mikrocontroller.net

Forum: Compiler & IDEs ADC Interrupt wird nicht aufgerufen


Autor: Timm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe ein Problem mit meiner Interrupt Routine. Wahrscheinlich mal wieder 
nur eine Kleinigkeit aber ich komme einfach nicht darauf.

Hier ein Ausschnitt:

void init_ADC(void)
{
//ADC

ADMUX   =  (1<<REFS0) |  (1<<ADLAR);           // interne 
Referenzspannung nutzen // linkes Datenregister
ADCSRA  =  (1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);  // ADC Interrupt 
Flag enable // ADC Prescaler
ADCSRA  =  (1<<ADEN);                   // ADC Enable
ADCSRA  =  (1<<ADATE);                // Automatisches Convertieren bei 
steigender Flanke am gewähltem Eingang
ADCSRA  |=  (1<<ADSC);

//Data
gStatusPoti = Poti_1;
}
ISR(ADC_vect)
{
if (gStatusPoti == Poti_1)
  {
    ADMUX  &= ~(1<<MUX0);
    ADMUX  &= ~(1<<MUX1);
    ADMUX  &= ~(1<<MUX2);
    //ADCSRA  =  (1<<ADSC);      // Start Conversion
    gPoti[0] = ADCH;
    gStatusPoti = Poti_2;
  }
if (gStatusPoti == Poti_2)
  {
    ADMUX   =  (1<<MUX0);
    ADMUX  &= ~(1<<MUX1);
    ADMUX  &= ~(1<<MUX2);
    //ADCSRA  =  (1<<ADSC);      // Start Conversion
    gPoti[1] = ADCH;
    gStatusPoti = Poti_3;
  }
}

In meiner Main Funktion rufe ich erst die ADC_init Funktion auf und dann 
sollte er nach dem Starten des ADC in meine ISR hüpfen....macht er aber 
(laut Simulation) nicht. Habe aber keine Idee wie ich ihn dazu bringe.
Wäre Dankbar, wenn ihr euch mal den Quellcode anseht und evtl. einen 
Tipp für mich habt.

MFG Timm

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ADCSRA  =  (1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);  // ADC Interrupt
>ADCSRA  =  (1<<ADEN);                   // ADC Enable

Das ist ungefähr so wie

ADCSRA  =  0
ADCSRA  =  1
ADCSRA  =  255

Welchen Wert hat ADCSRA am Ende?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.