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

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.