Hallo, ich habe mir mir mit einem durchlaufenden Zähler und nem Timercompare ne quasi PWM aufgebaut. Das funktioniert aus soweit. Ich möchte nun den Timercompare-Wert in Abhängigkeit einer ADC-Messung verändern. Das Puls/Pausenverhältnis soll also proportional der gemessenen Spannung sein. Die ADC-Messung wird anscheinend auch gemacht, zumindest wird das ADSC-Register zurückgesetzt. Die Frage, die sich mir jetzt stellt ist, wie genau ist der gemessene Wert eigentlich. 10bit,9bit oder evt. nur 8bit. Wie kann ich den ADC-Wert ausgeben um beurteilen zu können, welche genauigkeit er hat? Das ganze läuft auf einem attiny15. Den Quellcode hab ich mal anghängt. Besten Dank schonmal im Vorraus Werner
Hallo werner in der bechreibung deines tiny15 steht die Bitzahl deines uC. Schau mal nach. Dann kommts bei den uC darauf an mit welcher referenzspannung sie arbeiten. Beisiel 10 Bit ADC, 5 Volt: 2^10 = 1024 5/1023 = 4,88mV Auflösung, bei 12 Bit: 5Volt/4095 = 1,22mV. Das Zur Auflösung. Unter dem Begriff Genauigkeit versteht man eher den fehler des ADC und der liegt meist im Bereich +-2 LSB, also im letzten Beispiel +-2 Digits von 1,22mV = +-2,44mV. Gerhard
Ich habe in einem alten Beitrag gelesen, das die Genauigkeit auch von der Abtastfrequenz abhängt. Laut Datenblatt hat der Controller 10 bit. Ich überlege jetzt nur, wie ich zu Debug-Zwecken herrausbekomme, was hat der Controller den gerade gemessen. Vielleicht kann man den gemessenen Wert ja seriell über einen Pin rausschieben und sich auf dem PC anschauen. Mal sehen ob das klappt.
Hallo Werner, Was hälst du davon, den Wert doch im EEprom abzulegen, den kannst du doch dann per ISP auslesen! Gruß Andreas
Oder nacheinander gemessene Werte in verschiedene EEPROM-Zellen, dann hast du eine Aussage über die Streuung der Werte. Mach das aber nicht zu oft (Schleife), sonst wird dein EEP müde.
Besten Dank für die Hilfe. Ich mach es momentan aber was anders. Ich gebe mir die Werte über einen Pin jetzt seriell aus und beobachte die Signale am Ossi. Das war für mich im Moment das einfachste, da ich mit dem Eeprom noch nicht gearbeitet habe. Probiere gerade die Signale zu interpretieren ;-) Als nächstes muss ich aus den 10bit nen 8bit Wert berechnen, macht man das mit dem Z-Register (ist ja 16 bit), oder wie geht man da eigentlich vor? Werner
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.