avr und c: lcd-anzeige und nutzung von variablen

OP #1418914
hallo,

ich bin noch ganz am anfang (sowohl mit c-programmierung, als auch mit 
avr) und komme auch mit einer entsprechenden frage:
ich bearbeite gerade das avr-gcc-tutorial und komme beim lcd nicht 
weiter. einen einfachen text kann ich mir mit dem beschriebenen programm 
anzeigen. (dieser part 
hier:http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmierung)
damit habe ich jetzt auch schon ein wenig rumgespielt, aber ich bekomme 
es einfach nicht hin, hier eine variable in den text einzubauen. so wie 
in "normalem"-c und der variablen mit dem namen "out":
printf("%i", out);

wie geht das? ich hab vieles in der richtung versucht:
    lcd_string("%i", out);
    lcd_data("%i", out);

alles erfolglos. hab keine ahnung, wie weiter, weil auch meine 
c-kenntnisse noch minimal sind. (aber bin fleissig am üben und auch der 
linux-konsole macht mein c schon ein paar dinge)...

hat jemand nen link oder nen tip oder irgend ne hilfe?

vielen dank
und grüsse vom anfänger
> int out = 5;
> lcd_string(out);

Wass'n das?

lcd_string erwartet einen String als Übergabe, also musst Du Dir einen 
solchen basteln.  Aufwendig (code-mäßig), aber einfach:
1
#define STRLEN 15
2
char s[STRLEN];
3
int i = 5;
4
sprintf_P(s, PSTR("i = %d"), i);
5
lcd_string(s);
OP
hallo,

und danke an euch beide für die antworten.
die variante von kuchenkönig hatte ich allerdings (glaube ich) auch 
schon und die ging nicht.
die zweite kapiere ich noch nicht ganz - werde ich mir mal in ruhe 
anschauen und ausprobieren. leider liegen internet und avr im moment an 
verschiedenen orten :-(

aber jetzt hab ich ja erstmal wieder futter...

nochmals danke und grüsse vom
anfänger
Gast
>> int out = 5;
>> lcd_string(out);
>
>Wass'n das?
>
>lcd_string erwartet einen String als Übergabe, also musst Du Dir einen
>solchen basteln.  Aufwendig (code-mäßig), aber einfach:
>
>#define STRLEN 15
>char s[STRLEN];
>int i = 5;
>sprintf_P(s, PSTR("i = %d"), i);
>lcd_string(s);

Au da hast du natürlich recht... Ich war zu schnell.
Aber warum so Kompliziert. C liefert das mit...
utoa sollte das gleiche machen.

Hier ein Beispiel von mir:
1
int Temp = 88;
2
char str[16];
3
utoa(Temp, str, 10);
4
lcd_string(str);
OP
hallo,

danke für den weiteren hinweis. so bin ich jetz auch zu einem prositiven 
ergebnis gekommen (die variante mit: sprintf_P(s, PSTR("i = %d"), i); 
wars noch nicht).

also allen helfenden nochmal ein dankeschön.
bis zur nächsten frage - schöne grüsse vom
anfänger
Kuchen-König schrieb:

> Au da hast du natürlich recht... Ich war zu schnell.

Du bist auch jetzt zu schnell.
Denk bitte nach, was du einem Newbie schreibst, ehe du ihm Unsinn 
erzählst.

> Hier ein Beispiel von mir:
>
1
> int Temp = 88;
2
> char str[16];
3
> utoa(Temp, str, 10);
4
> lcd_string(str);
5
>

Temp ist ein int. Dafür wird itoa verwendet.
utoa ist bei einem unsigned int angebracht.

http://www.mikrocontroller.net/articles/FAQ#Wie_kann_ich_Zahlen_auf_LCD.2FUART_ausgeben.3F

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.