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); |
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
>> 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); |
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.