Forum: Mikrocontroller und Digitale Elektronik Wert einer Variable am LCD ausgeben


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christoph (Gast)


Lesenswert?

Guten Tag!

Ich habe ein Problem mit der Ausgabe von Variablenwerten am LCD.

Ich habe die Variable int Zaehl, welche einen Zahlenwert beinhaltet. 
Aber wie gebe ich den Zahlenwert nun aus?

lcd_string("Zaehl"); geht bekanntlich nicht da sonst Zaehl als Text 
verstanden wird.

Kann mir jemand helfen??

(Ich benutze lcd.h vom lcd-tutorial als headerdatei)


Schöne Grüsse
Krisdov

von ARM-Fan (Gast)


Lesenswert?

Schau mal nach itoa oder sprintf.

von Karl H. (kbuchegg)


Lesenswert?


von Christoph (Gast)


Lesenswert?

muchas gracias!

von Olli (Gast)


Lesenswert?

Kannste auch selber machen:

Int + 48 = char

Das gilt aber nur für einstellige Integer. Musste die Variable noch 
durch geeigneten Algorithmus in die einzelnen Ziffern zerlegen.

Gruss Olli

von Niels H. (monarch35)


Lesenswert?

ARM-Fan wrote:

> Schau mal nach itoa oder sprintf.

Von sprintf wäre eher abzuraten, wenns nicht unbedingt nötig ist. 
sprintf kostet ziemlich viel resourcen (flashspeicher und prozesszeit). 
Ich weiss nicht, wie gross ein itoa ist, jedenfalls braucht meine 
Wandlung 98 Bytes flash. Ich glaube nicht, das itoa das unterbieten 
kann.
1
void outzahl (uint8_t zahl,uint8_t anzahl)
2
{
3
  div_t val;
4
  uint8_t flag;
5
  flag=0;
6
  val=div(zahl,100);
7
  if (val.quot!=0 || anzahl>2)
8
  {
9
    flag=1;
10
    lcd_putc ('0'+val.quot);
11
  }
12
  val=div(val.rem,10);
13
  if (val.quot!=0 || flag==1 || anzahl>1)
14
  {
15
    flag=1;
16
    lcd_putc ('0'+val.quot);
17
  }
18
  lcd_putc ('0'+val.rem);
19
}
Die Parameter "zahl" bestimmt, welche Zahl ausgegeben wird und "anzahl" 
wieviele Stellen dafür auf dem Display reserviert werden sollen 
(führende Nullen).
Der Code sollte soweit selbsterklärend sein, das er keiner weiteren 
Kommentare bedarf.

von Simon K. (simon) Benutzerseite


Lesenswert?

Och Leutchen, es wurde bereits alles gesagt:

Karl heinz Buchegger wrote:
> 
http://www.mikrocontroller.net/articles/FAQ#Wie_kann_ich_Zahlen_auf_LCD.2FUART_ausgeben.3F

von Niels H. (monarch35)


Lesenswert?

Simon K. wrote:

> Och Leutchen, es wurde bereits alles gesagt:

Nein, wurde nicht! Jene Seite aus den FAQs spricht die Thematik der 
Resourcenbemaßung nur unzulänglich an.

von Karl H. (kbuchegg)


Lesenswert?

Niels Hüsken wrote:
> Simon K. wrote:
>
>> Och Leutchen, es wurde bereits alles gesagt:
>
> Nein, wurde nicht! Jene Seite aus den FAQs spricht die Thematik der
> Resourcenbemaßung nur unzulänglich an.

OK. 'unzulänglich' ist noch freundlich ausgedrückt :-)
Darf ich dich bitten eine Ergänzung vorzunehmen.

von Niels H. (monarch35)


Lesenswert?

Karl heinz Buchegger wrote:

> OK. 'unzulänglich' ist noch freundlich ausgedrückt :-)
> Darf ich dich bitten eine Ergänzung vorzunehmen.

Ich hoffe mein bescheidener Beitrag wird den Ansprüchen des Wikis 
gerecht. :)

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
Noch kein Account? Hier anmelden.