INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ausgabe LCD Text + Integer bzw. Text + Float in einem Aufruf
13.12.2013, 21:21
Beitrag #1
Ausgabe LCD Text + Integer bzw. Text + Float in einem Aufruf
Moin,

der Titel sagt eigentlich schon alles.
Mir war wichtig die String-Klasse nicht zu benutzen, da diese recht viel Speicher braucht. Anbei ein Beispiel-Code:
Code:
#include <LiquidCrystal.h>
//Pin assignments LCD Shield. Hier Saintsmart Keypad - Shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
// Integerausgabe
const char inttext[] = "Integer: "; // auszugebender Text
int intzahl = 10; // auszugebende Zahl
// Floatausgabe
const char floattext[] = "Float  : "; // auszugebender Text
float floatzahl = 3.1415926; // auszugebende Zahl
int floatlength = 5; // Gesamtlänge inkl. Punkt
int nks = 3; // Nachkommastellen
// Puffer für Umwandlungen - wird von den Funktionen zurückgegeben
char rwert[] = "*";

void setup()
{
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(char_and_int(inttext, intzahl));
  lcd.setCursor(0, 1);
  lcd.print(char_and_float(floattext, floatzahl, floatlength, nks));
}
void loop()
{
  // nothing to do
}
// Funktion zur Ausgabe Text + Integer
char* char_and_int(const char* inttext, int intzahl)
{
  sprintf(rwert, "%s%d", inttext, intzahl);
  return rwert;
}
// Funktion zur Ausgabe Text und Float
char* char_and_float(const char* floattext, float floatzahl, int floatlength, int nks)
{
  char ewert[17]; // Zwischenpuffer: max Länge = Breite LCD + 1
  // Umwandlung Float nach Char
  dtostrf(floatzahl, floatlength, nks, rwert);
  // Text in Zwischenpuffer
  strcpy(ewert, floattext);
  // Char (von Float) ranhängen
  strcat(ewert, rwert);
  // Zwischenpuffer wandeln
  sprintf(rwert, "%s", ewert);
  return rwert;
}

Hope it helps!
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  EEPROM - lesen/schreiben von mehreren Bytes in einem Rutsch rkuehle 2 3.566 16.05.2014 20:01
Letzter Beitrag: rkuehle

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste