Forum: Mikrocontroller und Digitale Elektronik AVRStudio GCC float Problem...


von Mario G. (mario)


Lesenswert?

Hallo,

ein Arbeitskollege von mir hat sich ein Testboard mit einem ATmega128
und LCD und dieversen Schnittstellen gebaut und verwendet zum
compilieren und linken AVR-GCC (WinAVR-Paket installiert) und als IDE
das neueste AVRStudio v4.12. Für das LCD (4x16) hat er die libary von
Peter Fleury eingebunden. Außerdem haben wir mit fdevopen(...) die
Ausgabe aufs LCD umgeleutet. Die funktioniert auch alles wunderbar, nun
das Problem:
Wir haben versucht, eine float-Zahl auf dem Display auszugeben, dazu
muß man ja normalerweise (wenn man WinAVR mit Notepad benutzt) im
Makefile die richtige printf-Variante einbinden (lprintf_flt...). Genau
diesen Parameter haben wir auch im AVRStudio als zusätzlichen Parameter
angegeben, aber auf dem LCD erscheint nur ein Fragezeichen. Wenn man
allerdings ein externe Makefile benutzt (mit Mfile erstellt)
funktioniert das Anzeigen der float-Zahl (printf("%3.3f", var);)
wunderbar. Hat jemand ähnliche Probleme oder noch nicht ausprobiert?

von Die Waldfee (Gast)


Lesenswert?

Ein solches Problem hatte ich auch mal, aber habe niemals
herausgefunden, woran es wirklich lag. Es kam immer nur Müll heraus
(das besagte Fragezeichen).
Ich habe dann irgendwann entnervt aufgegeben und stattdessen dtostrf()
in Verbindung mit meiner sowieso vorhandenen print_lcd() verwendet.
Brauchte auch wesentlich weniger Platz als printf().
Wenn mir aber jemand mal verklickern kann, was ich falsch gemacht habe,
wäre ich auch dankbar ... ;)

von Mario G. (mario)


Lesenswert?

So was hatte ich befürchtet... hat noch keiner ne Lösung gefunden. Wir
werden hier mal noch ein bisschen rumprobieren. Ansonsten kann man ja
auch das externe Makefile benutzen.

Mario

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.