mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATtiny2313 Probleme bei LCD-Ausgabe großer Zahlen


Autor: Nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend an alle AVR- und C-Spezialisten!

Ich programmiere gerade in C mit dem AVR-Studio (+WinAVR) an einem 
ATtiny2313. Nun habe ich das Problem bei der Zahlenausgabe auf einem 
LCD, aber erst bei Zahlen ab 40000 und größer. Dabei entstehen 
Hieroglyphen in den Tausender- und Hunderter-Stellen (z.B. 4xx43). Woran 
kann das liegen? Muss man vielleicht dem Compiler noch irgendwelche 
Optionen geben?

Hier noch meine Ausgabe-Funktion für die Zahlen auf dem LCD:
void lcd_long(unsigned long int data)
{
  unsigned char byt;

  byt = data / 1000000;
  data = data - byt * 1000000;
  lcddata(byt + 48);
  byt = data / 100000;
  data = data - byt * 100000;
  lcddata(byt + 48);
  byt = data / 10000;
  data = data - byt * 10000;
  lcddata(byt + 48);
  byt = data / 1000;
  data = data - byt * 1000;
  lcddata(byt + 48);
  byt = data / 100;
  data = data - byt * 100;
  lcddata(byt + 48);
  byt = data / 10;
  data = data - byt * 10;
  lcddata(byt + 48);
  lcddata(data + 48);
}

Ich würde gerne Zahlen von 0 bis ca. 1000000 ausgeben können. Oder gibt 
es eine andere Möglichkeit dies zu tun?

Danke!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>void lcd_long(unsigned long int data)

Was ist ein "unsigned long int" ?

void lcd_long(unsigned long data)

>  data = data - byt * 1000000;

  data = data - (unsigned long)byt * 1000000;

>Oder gibt es eine andere Möglichkeit dies zu tun?

sprintf() vieleicht ?

Autor: Nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Holger!

unsigned long int ist glaube das gleiche wie unsigned long.
Bring auch keinen Unterschied!
Aber der cast-Operator vor der byt-Variablen hats gebracht!

Vielen Dank Holger!

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was ist ein "unsigned long int"

Ein "unsigned long int" ist ein vordefinierter Datentyp in C.
Man DARF auch auch die Kurzversion "unsigned long" verwenden ;-)

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.