AD-Wandler läuft nicht

OP #5422615
Lesenswert?
• ▲
▼
Moin,
ich möchte einen AD-Wandler am Mega32 verwenden.

So habe ich den Ad-Wandler angeschlossen wenn ich AVCC als Referenz 
verwenden möchte.

AVCC an +5V
GND an GND
AREF mit Kondensator an GND

An PA0 (ADC0) habe ich eine Spannung von 0,6V - 2V.

Mein C-Code bis jetzt:
1
define  F_CPU 8000000UL
2
#include <avr/io.h>
3
#include <util/delay.h>
4
#include "Lcd-routines.h"
5
#include <stdlib.h>
6

7
int main(void)
8
{
9
  
10
  void ADC_Init(void){
11

12
    ADMUX = (1<<REFS0);            //AVcc als Referenz
13
    ADCSRA = (1<<ADPS2) | (1<<ADPS1);    //Frequenzvorteiler
14
    ADCSRA |= (1<<ADEN);          //ADC Aktivieren
15
    //Dummy readaot
16
    ADCSRA |= (1<<ADSC);
17
    while (ADCSRA & (1<<ADSC)){}
18
    (void) ADCW;
19
  }
20
  uint16_t ADC_Read( uint8_t channel ){
21

22
    //Kanal wählen
23
    ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);
24
    ADCSRA |= (1<<ADSC); //Eine Wandllung sigel conversion
25
    while (ADCSRA & (1<<ADSC)){} //Auf Abschluss warten
26
    return ADCW;
27
  }
28
        DDRA = 0b00000000;
29
  PORTA = 0b00000000;
30
  DDRC = 0b11111111;
31
  
32
  lcd_init();
33

34
  char out0[16];
35
  char out1[16];
36
  uint16_t infrarot;
37
  uint16_t test=120;
38

39
    while (1) 
40
    {
41
    lcd_clear();
42
    lcd_string("Testausgabe");
43
    itoa(test,out0,10);
44
    lcd_setcursor(0,2);
45
    lcd_string(out0);
46
    _delay_ms(1000);
47
    lcd_clear(),
48
    
49
              
50
    infrarot=ADC_Read(0);
51
    itoa(infrarot,out1,10);
52
    lcd_setcursor(0,0);
53
    lcd_string("Abstand");
54
    lcd_setcursor(0,2);
55
    lcd_string(out1);
56
                                                       
57
    _delay_ms(1000);
58
    lcd_clear();  
59
    
60
    }
61
}

Bei der Testausgabe funktioniert alles. Und bei der infrarot Ausgabe 
erhalte ich eine 0. Sieht einer den Fehler?


Liebe Grüße

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.