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
Die Übersichtlichkeit ist ja nicht gerade umwerfend. Mir fehlt das sei(); sonst gibt es keinen Interrupt.
Die derzeitige Variante sollte ja eigentlich ohne Interrupt funktionieren.
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?
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. :-)
[Rot_Anlauf] nein, bitte nicht so ein banaler Fehler! Ich teste mal...
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.