Hallo, ich betreibe einen M8L@3.3V mit dem Quellcode eines M8 der bei 5V läuft. Dabei fällt mir auf, dass der ADC bei 0-1650mV Werte von 0-777 liefert, und bei 1650-3300mV Werte von 1000-1777. Ist das normal? Ich hätte schon erwartet, dass der Bereich 777-1000 auch ausgefüllt wird. Oder mach ich irgendwo einen Fehler? Eine weitere Sache die mir nicht ganz einleuchtet. Bei 10 Bit hab ich einen Bereich von 0-1023. Der ADC geht aber bis 1777. Warum? Danke.
@ L. R. (badinode) >ich betreibe einen M8L@3.3V mit dem Quellcode eines M8 der bei 5V läuft. >Dabei fällt mir auf, dass der ADC bei 0-1650mV Werte von 0-777 liefert, >und bei 1650-3300mV Werte von 1000-1777. >Ist das normal? Der ADC liefert sicher keine 1777. Denn der macht bestenfalls 10 Bit, sprich 1023 ist das Maximum. >Oder mach ich irgendwo einen Fehler? Wahscheinlich liefert deine Funktion schon ein in mV umgerechnetes Ergbnis. Und wenn der Code für 5V Betriebs-und Referenzspannung ausgelegt ist, dann klappt das mit 3.3V eben nicht. >einen Bereich von 0-1023. Der ADC geht aber bis 1777. Warum? Siehe oben. Festkommaarithmetik MfG Falk
Das schreit nach einem Programmfehler und normal ist das keinesfalls.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
Das ist der Code. readadchan() wird öfters aufgerufen um zu mitteln. Es findet keine Umrechnung in Spannungen oder sonstws statt. Ich gebe direkt den ADC-Wert aus.
Gast
#649336
Wo ist das Problem? 0- 777 (oktal) -> 0- 511 (dezimal) 1000-1777 (oktal) -> 512-1023 (dezimal)
Oh Mann... Danke yalu :)
Okay, nun nochmal für diejenigen, denen das vielleicht auch mal passieren sollte. Der Fehler lag im
1 | |
. Hatte irrtümlicherweise angenommen, die 8 stünde für die Bufferlänge. Dabei steht sie für Octal. Also muss da eine 10 draus werden und gut is.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.