Variable -> LCD

Gast #599094
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
Gast #599231
Lesenswert?
• ▲
▼
Ach so, wenns nen Integer ist dann z.B. so:
1
void int_dsp (uint16_t int_val)  {
2
  uint8_t int_val_ [5];                   // Integer Array
3
  uint8_t m = 4;                          // Schleifenzähler für Ausgabe
4

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

  
Persönliche Seite #599363
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 ;) )
Persönliche Seite #599371
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.

Antwort schreiben

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.

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.