Probleme mit dem ADC beim ATmega48

OP #3215062
Lesenswert?

Ich muss doch noch mal auf euch weisen Leute da draußen zurückgreifen, 
weil ich es einfach nicht hin bekomme, den ADC zum laufen zu bringen. 
Ich finde vor allem den Fehler nicht...
Ich habe mir eine kleine, sicher noch nicht ganz ausgereifte ADC Lib 
geschrieben, jedoch noch nicht in ne eigene .h Datei gehauen, weshalb 
das alles noch vor der main steht. Das alles könnt ihr als Anhang 
finden.
Das Problem ist, dass ich nichts angezeigt bekomme - keine LED leuchtet. 
Ich gehe deshalb mal ganz stak davon aus, dass der ADC 0 zurück gibt. 
Aufhängen tut sich das Programm auch nicht, dass habe ich durch die 
auskommentierten Portänderungen und den daran hängenden LEDs schon 
getestet.
Was habe ich denn nun wieder falsch gemacht? Wäre schön, wenn ihr mir 
nen Ansatz geben könntet.

Danke euch schon mal,
Edgar339
Angehängte Dateien:
#3215161
Lesenswert?

Dein Code ist mit seinen vielen, vielen Funktionen nicht wirklich 
übersichtlich.
Sieh dir doch mal die Funktionen im AVR-GCC-Tutorial an,
Analoge Ein- und Ausgabe: Nutzung des ADC
wie man die Sache im wesentlichen mit 2 Funktionen hinkriegen kann. Die 
eine dient zum Initialisieren, die andere um die Messung zu machen. Ist 
um einiges einfacher.

Aber, zum Problem. Dein Problem sitzt zb hier
1
void ADC_interrupt_enable (uint8_t enable) {
2
  ADCSRA  &=  ~(1 << ADIE);
3
  ADCSRA  =  enable << ADIE;
4
}

gratuliere. Du hast dir soeben mit dem Funktionsaufruf die restliche 
Belegung des ADCSRA Registers zerstört. :-)

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