ADC bringt keine Ergebnisse

Gast #3118910
Lesenswert?

Hi, ich habe folgendes Problem:
Ich hab schon öfters mit dem Internen ADC der Atmegas gearbeitet. Aber 
aktuell verzweifel ich: Auf meiner selbstgebauten Test-Platine werkelt 
ein Mega32 mit externen 8Mhz. Die Hardware funktioniert, da ich den ADC 
schonmal erfolgreich genutzt habe.
Trotzdem nochmal die externe Beschaltung: Alle AVCC und GND sind 
beschaltet, VCC/GND hat 100nF, AVCC/GND hat 100nF, AVCC/5V hat 10µH in 
Reihe. VCC beträgt etwa 5,1V und ist Sauber (mit Oszi gemessen)

Schließe ich meinen Poti an, Messe ich an PA1 mit meinem Mutlimeter 1,7V 
bis 3,0V je nach Poti-Stellung.

Ich übertrage die ADC Werte über UART an meinen PC. Es kommt aber IMMER 
nur 410 raus. Nach dem Programmieren sinkt der wert von ca. 480 langsam 
auf 410 runter. Auch das einschalten aller Pullups an PortA (was ja 1023 
als ADC Wert zu folge haben müsste) änderte daran nichts.

Hier mein Code:
1
#define F_CPU 8000000
2
#define UART_BAUD_RATE 9600
3

4
#include <stdlib.h>
5
#include <avr/io.h>
6
#include <avr/interrupt.h>
7
#include <util/delay.h>
8

9
#include "uart.h"
10

11
int main(void)
12
{
13
  ADMUX |= (1<<MUX0); //PA1
14
  ADCSRA |= (1<<ADPS1)|(1<<ADPS2);  //64 Prescaler
15
  ADCSRA |= (1<<ADEN);
16
  
17
  uart_init(UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU));
18
  sei();
19
  
20
  char buffer[7];
21
  uint16_t ADC_Value;
22
  
23
    while(1)
24
    {  
25
    ADCSRA |= (1<<ADSC);
26
    while (ADCSRA & (1<<ADSC))
27
    {
28
      ;   // auf Abschluss der Konvertierung warten
29
    }
30
    ADC_Value = ADCW;
31
    itoa(ADC_Value, buffer, 10);
32
    uart_puts(buffer);
33
    uart_puts("\n");
34
    _delay_ms(500);
35
    }
36
}

Ich steh total aufm schlauch, kann mir jemand helfen und weiß worans 
liegt? Ist das Programm so Ok? Ist evtl der µC hinüber?
#3118920
Lesenswert?

Was hast du mit ARef gemacht?
Da du im Programm die Einstellung der Referenzspannung auf 0 lässt, hast 
du damit die Referenzspannung auf 'extern vom ARef Pin kommend' 
geschaltet.

> Schließe ich meinen Poti an, Messe ich an PA1 mit meinem Mutlimeter
> 1,7V bis 3,0V je nach Poti-Stellung.

Wie ist dieses Poti verschaltet?
Gast #3119069
Lesenswert?

Drippelpost ;)

Der ADC im Mega32 scheint hin zu sein. Hab jetzt einen anderen genommen 
und mit dem geht es.

Hat echt lange gehalten, wenn man bedenkt was der alles mitmachen 
durfte... Hat auch schonmal 12V über mehrere Minuten ab bekommen, lief 
danach aber noch super :) Tut auch jetzt noch alles, außer der ADC. 
Naja, was solls.

Danke für deine hilfe trotzdem!

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