ATMega8: AD-Wandlung wird nicht fertig

Gast #4325712
Lesenswert?
• ▲
▼
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!
#4325718
Lesenswert?
• ▲
▼
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

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.

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.