ATMega8: AD-Wandlung wird nicht fertig

Gast #4325712
Hallo,
wo ist in meinem Code ein Fehler? Denn ich habe das Problem, dass die 
AD-Wandlung nicht abschließt, er also im Code in der While-Schleife 
hängen bleibt.
Die Hardware sollte stimmen -> AGND, AREF, AVCC sind correct 
angeschlossen.
1
int main(void)
2
{
3
  uint16_t temp;
4
  char text[40];
5
  
6
  uart_Init();
7
  
8
    ADMUX = 0x00;  //ex reference, no channel selected
9
    ADCSRA = 0xA7;  //0b1010 0111, division factor: 128, free running
10
    ADMUX |= ((1<<MUX0)|(1<<MUX1));
11
    ADMUX &= ~(1<<ADLAR);
12
    
13
    uart_puts("STARTED\n");
14
    while(1)
15
    {
16
         
17
         ADCSRA |= (1<<ADSC);
18
         while(ADCSRA & (1<<ADSC))
19
           ;
20

21
         temp = ADCW;
22
    sprintf(text,"ADC: %d\n",temp);
23
    uart_puts(text);
24
    _delay_ms(100);
25
    }
26
}

Vielen Dank!
Hallo,

Bei der Anweisung
1
ADCSRA = 0xA7;
 sollte man immer die Bitnamen verwenden, dass beugt Fehler vor.

Wenn
1
(ADCSRA.ADFR == 1)
 ist, dann muss man auch nur einmalig den ADC-Vorgang "anstoßen".
Dies geht mit
1
ADCSRA.ADSC = 1;
 oder ähnlich in deiner Implementierung.

Wie schnell läuft deine CPU ?
Der ADC-Takt hat auch bestimmte Grenzen, diese stehen im Datenblatt.
1
ADMUX.ADLAR = 0;
 könnte man sich sparen, da dies der Initwert des Registers ADMUX, bzw. 
des Bits ADLAR ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.