avr und c: lcd-anzeige und nutzung von variablen

OP #1418914
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
#1418939
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);
OP #1419060
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
Gast #1419286
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);
#1419678
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren