ADC umrechnen

Gast #283260
Lesenswert?
• ▲
▼
Hallo
Kann mir jemand sagen, warum die Nachkommastelle bei dem Programm nicht
richtig angezeigt wird? Die Erste Stelle ist O.K.. Der ADC Rohwert
istauch O.K. Wenn ich den ADC Eingang auf 5Volt lege zeigt er1023 bei
0Volt 0. Als Kontolle habe ich ein Multimeter angeschlossen. Benutzt
wird ein Meg8 mit externer Ref.
gruss
Frank
result =(5*ADC)/1023;
result1 = result+ADCH;

_delay_ms(600);
LCD_Print(0,0,"Volt: %i,%i ",result,result1);
LCD_Print(1,0,"ADC WERT:%i",ADC);
_delay_ms(600);
Moderator Persönliche Seite
Lesenswert?
• ▲
▼
> Kann mir jemand sagen, warum die Nachkommastelle bei dem Programm
> nicht richtig angezeigt wird?

Nur, wenn du uns zuerst erklärst, wie dein Algorithmus da eigentlich
funktionieren soll.  Ich finde ihn jedenfalls sehr eigenwillig und bin
nicht der Meinung, dass dabei jemals irgendwas wie eine sinnvolle
Nachkommastelle herauskommen könnte.
Gast
Lesenswert?
• ▲
▼
Eigentlich will ich nur den ADC Wert auf ein LCD bringen und zwar in
Volt.
Ich habe einen Spannugsteiler mit einem LDR und ein 150ohm Widertsand.
Das Umwandel funzt ja schon nur kriege ich kein ordentliches ergebnis
zustande (Nachkommastelle). Wie muss man es sonst machen?
Frank
Gast
Lesenswert?
• ▲
▼
Ich glaube, Jörg wollte wissen, wie du auf die Idee gekommen bist, daß
"result1 = result+ADCH;" irgendetwas ergeben könnte, das auch nur
ansatzweise was mit der Nachkommastelle zu tun hat.

So könnte es gehen:
1
uint16_t temp = 5 * ADC;
2
result = temp / 1023;
3
result1 = (temp * 10 / 1023) % 10;

oder noch etwas optimiert (eine Multiplikation weniger):
1
uint16_t temp = (50 * ADC) / 1023;
2
result = temp / 10;
3
result1 = temp % 10;
Gast
Lesenswert?
• ▲
▼
> Kannst Du mir noch die  Zeile erklären?
> result1 = temp % 10;

Mit dem Modulo-Operator erhältst Du den Rest einer ganzzahligen
Division. Hast Du also z.B. 501 und möchtest das als 50,1 darstellen,
ist 501/10 der Teil vor dem Komma und 501%10 der Teil danach.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.