Forum: Mikrocontroller und Digitale Elektronik avr und c: lcd-anzeige und nutzung von variablen


von An F. (hallofrage)


Lesenswert?

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

von Kuchen-König (Gast)


Lesenswert?

1
int out = 5;
2
lcd_string(out);

von Hc Z. (mizch)


Lesenswert?

> 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);

von An F. (hallofrage)


Lesenswert?

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

von Kuchen-König (Gast)


Lesenswert?

>> 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);

von An F. (hallofrage)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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

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.