www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Variable -> LCD


Autor: Trunes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich möcht den Wert einer Variable auf einem
LC- Display ausgeben. zB: x=1 ->  Das Display zeigt mir 1 an.

Ich weiss jedoch nicht wie ich das anstellen soll? (prog. mit C)

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stell bitte mehr Infos zur Verfügung:

-Welcher Controller
-Welches Display
-usw.

Prinzipiell würde ich sonst aufgrund Informationsmangel sagen "Ausgabe = 
1", und das hilft dir wohl kaum weiter, oder?

Ralf

Autor: Trunes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sry,

Ich prog. einen ATTiny2313 -> Einzeiliges Standartdisplay.

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- Welche Sprache?

Autor: Trunes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>(prog. mit C)

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>prog. mit C)
>- Welche Sprache?

Hätte nicht kommen dürfen... :D

Hast du schon mal in die verschiedenen Tutorien auf dieser Seite 
geguckt?
Ich weiß zwar nicht, wie weit die Jungs sind, die die bearbeiten, aber 
helfen könnte es vielleicht.

Autor: Trunes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann leider nichts nützliches finden.

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach verdammt, den kleinen Hinweis hab ich doch glatt übersehen ... ;)

die einfachste methode sollte printf sein ... dann gibts noch itoa womit 
du eine zahl in einen String wandeln kannst den du dann auf deinem LCD 
ausgeben kannst.

Ich gehe mal davon aus, dein LCD läuft oder?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ATTiny2313
> printf
Da wäre ich vorsichtig... 2 KiB Flash und printf könnte zumindest eng 
werden...

Autor: Trunes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich gehe mal davon aus, dein LCD läuft oder?

Ja mein lcd läuft.
Ich verwende die Lib von B. Nollmeyer (ist im Forum).

Autor: Trunes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke ich habe das Problem jetzt gelöst.
Beitrag "int to string für LCD"

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ASCII 0 = 30
      1 = 31
      2 = 32 ...

also einfach +30 dann ist es ASCII

Gruß

Joe alias B.N.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so, wenns nen Integer ist dann z.B. so:
void int_dsp (uint16_t int_val)  {
  uint8_t int_val_ [5];                   // Integer Array
  uint8_t m = 4;                          // Schleifenzähler für Ausgabe

  do  {
        int_val_ [m] = '0' + int_val %10; // Berechnung der einzelnen Stellen
        int_val /= 10;                    //
  }while (m--);                           //
  while (m != 4)  {
    display_data_out (int_val_ [++m]);    // Integer Wert ausgeben
  }
}

  

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johannes M. wrote:
>> ATTiny2313
>> printf
> Da wäre ich vorsichtig... 2 KiB Flash und printf könnte zumindest eng
> werden...

Deswegen sag ich ja auch die einfachste ;) die geeignetste ist das ganze 
wie oben selbst zu schreiben.

Ich hab das ganze in assembler gemacht, da sind das auch nur n paar 
zeilen (solange man sich die divisionroutine nicht anguckt ;) )

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich hab das ganze in assembler gemacht, da sind das auch nur n paar
>zeilen (solange man sich die divisionroutine nicht anguckt ;) )

Funktioniert das auch auf ARM und PIC ?


Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Prinzip ist immer das gleiche ...
Die Assembler sind immer andere, müsste man anpassen.

Nochmal das Prinzip:

Man nehme einen Array (oder in assembler halt ein stück SRAM) mit der 
maximalen länge an zeichen die bei der umwandlung entstehen können (8 
bit maximal 3 Zeichen, 16 bit 5 Zeichen etc.)

Man teile die Zahl durch 10, nehme den rest der divison plus 48 (0x30) 
schreibe es an den letzten speicherplatz im Array (oder SRAM 
speicherstelle) dann teilt man die zahl wieder durch 10 und nimmt den 
rest plus 48 (0x30) und schreibt ihn an n-1 und so fort bis man das dem 
datentyp entsprechend oft gemacht hat.

Dieses Array kann man jetzt gemütlich auf ein LCD schreiben.

Man könnte natürlich auch anstatt die werte ins SRAM zu schreiben sie 
direkt aufs LCD schreiben. Man muss jedoch bedenken, dass man "hinten" 
anfängt und sich nach vorne vorarbeitet. D.h. man muss den pointer ans 
ende der ausgabe setzen und dann decrementieren.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das Prinzip ist immer das gleiche ...
>Die Assembler sind immer andere, müsste man anpassen.

In C ist das immer der gleiche Code.
Da muss man nix anpassen.

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.