Forum: Mikrocontroller und Digitale Elektronik Probleme mit dem ADC beim ATmega48


von edgar 3. (edgar339)


Angehängte Dateien:

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

von Hubert G. (hubertg)


Lesenswert?

Die Übersichtlichkeit ist ja nicht gerade umwerfend.
Mir fehlt das sei(); sonst gibt es keinen Interrupt.

von edgar 3. (edgar339)


Lesenswert?

Die derzeitige Variante sollte ja eigentlich ohne Interrupt 
funktionieren.

von Hubert G. (hubertg)


Lesenswert?

Darum meinte ich auch, nicht gerade übersichtlich.
Schau dir mal das ADMUX an, was da drinnen steht. Stimmt das mit deinem 
ausgewählten Kanal überein?

von Karl H. (kbuchegg)


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. :-)

von edgar 3. (edgar339)


Lesenswert?

[Rot_Anlauf] nein, bitte nicht so ein banaler Fehler!
Ich teste mal...

von Karl H. (kbuchegg)


Lesenswert?

edgar 339 schrieb:
> [Rot_Anlauf] nein, bitte nicht so ein banaler Fehler!

Dafür, quasi als Ausgleich, hast du ihn dann gleich 3 mal gemacht :-)
(Schon klar: Copy&Paste)

von edgar 3. (edgar339)


Lesenswert?

Ja, copy + paste + vier Uhr morgens + Anfänger

von edgar 3. (edgar339)


Lesenswert?

Geht, welch Pein...

Danke und Entschuldigung an euch guten Leute.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.