Ich verwende den AD Wandler im ATMeag8535. Leider stimmt das Ergebnis nicht exakt mit dem überein was mit mein Voltmeter am Pin anzeigt. Ich habe eine Differenz von gut 0,5 Volt. So gehe ich vor: Ich hab schon gemerkt, dass man den Port nicht als Ausgang definieren sollte wenn man ihn als AD Wandler benutzt, da das Ergebnis sonst absolut daneben liegt. Daher setze ich den Port zu Beginn so: Ldi Temp1, 0b00000000 Ldi Temp2, 0b00000000 Out DDRA, Temp1 Out PortA, Temp2 ;Danach enable ich den AD Wandler ;ADCSRA setzen Ldi Temp1, 0b10000111 Out ADCSRA, Temp1 ;ADMUX setzen Ldi Temp1, 0b00000000 Out ADMUX, Temp1 ;Zuletzt frage ich den Wert noch ab ;AD Pin = Pin0 setzen Ldi Temp1, 0b00000000 Out ADMUX, Temp1 ;AD Wandlung starten sbi ADCSRA, ADSC ;Warten bis AD Wandlung komplett Convert_AD_Pin_WaitForConvert: Sbis ADCSRA, ADIF Rjmp Convert_AD_Pin_WaitForConvert In Temp1, ADCL In Temp2, ADCH Sbi ADCSRA, ADIF Die Spannung berechne ich dann nach dieser Formel: Volt am Pin = (Rückgabe AD Wandler * Volt_AREF) / 1024 Wo könnte hier noch ein Fehler liegen?
Hallo! Erst mal ein paar Fragen um deine Situation besser verstehen zu können: Welche Spannung wird gemessen? Welche Referenz verwendest du für den ADC? lg neumi
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.