www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik binär to string


Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Profis,

Ich bin zu blöd für folgende Aufgabe:

Ich will den AD-Wandler auslesen und den erhaltenen Wert erst umrechnen, 
dann als String an ein LCD übergeben.

Mein geplantes Vorgehen

ADCL und ADCH auslesen und - wie im Tutorial beschrieben - die beiden 
Register verbinden. Somit erhalte ich eine binäre 16Bit Zahl (wenn ich 
nicht irre) mit dem Maximalwert von 1023 dezimal.

Nun muss ich den Wert so umrechnen, dass 0 bis 1023 einer Skala von 00,0 
bis 30,0 entsprechen. Dieses Ergebnis sollte dann als String an ein LCD 
gesendet werden.

Hiilfee.

Mein Problem ist weniger das Umrechnen, als das Wandeln von binär in 
einen String.

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programmiersprache?

Autor: Newbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte vielmals um Entschuldigung!! C

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ungetestet:
char buf[5];
char *ptr = buf;
uint32_t val = (ADC * 300UL) / 1024;
char c;
uint8_t dig = 100;
for (uint8_t i = 0; i < 3; ++i) {
  c = '0';
  while (val >= dig) {
    ++c;
    val -= dig;
  }
  *++ptr = c;
  if (!i) *++ptr = ',';
}
*ptr = 0;
//buf sollte nun den Zahlenwert beinhalten.
Ist wohl nicht optimal, sollte aber so in der Art funktionieren. 
Allerdings wirst du mit der Rechnung nie 30,0 erreichen, sondern nur 
29,9. Willst du wirklich bis 30, solltest du oben mit 301 
multiplizieren...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.