sprintf - float - Wert (trotz Einstellung "?")

Gast #537996
Lesenswert?

Hallo,
Ich habe ein programm in C, welches einen Float - Wert auf einem 
zweizeiligen Display ausgibt.

Nach dem ich die Einstellungen in AVR - Studio vorgenommen habe klappte 
dieses auch. Ich erhielt kein "?" sondern den Float - Wert.

Nun haben wir ein vierzeilen Display in betrieb genommen. Der Controller 
ist ebenfalls kompatibel zum zwei zeilen Display.

Die Routine funktioniert auch soweit ganz gut. Doch mit dem selben 
Programm, dass auf dem zwei zeiligen Display geht, bekomme ich auf dem 
vier zeilen Display wieder ein "?" statt dem Wert.

Hat wer ne Idee, wodran das liegen mag?

Mfg Jan H.
Gast #538022
Lesenswert?

Den Header kann ich euch mal als Anhang geben.
1
int sprintf (char *buffer, const char *format,...);    
2

3
int main ()
4
{
5
  DDRD = 0xff;
6
  float x;
7
  x = 0.23;
8
  lcd_init ();
9
  sprintf (Ergebnis, "%6.2f",x);      
10
  lcd_position (4,13);                      
11
  lcd_text(Ergebnis);    
12
}

  
Gast #538024
Lesenswert?

Zudem ist im Header noch ein Fehler. Und zwar funktioniert die 
Positionsangabe in der ersten Displayhälfte (1 und zweite zeile) 
wunderbar. in der 3 und 4 zeile spinnt diese.

Wenn man nun
1
lcd_position (4,13); 
2
lcd_position (4,13);

schreibt, dann geht es..dann setzt er den cursor auf position 4,13 ... 
jedoch NUR, wenn man es doppelt schreibt ...

Seltsam
#538077
Lesenswert?

Jan H. wrote:
> ... ist das Problem zu komplex oder ungenau gestellt?

Nicht wirklich.
Nur sehr mysteriös.

Normalerweise würde ich sagen, dass die beiden
Problemkreise
* sprintf erzeugt bei einem float ein ?
* Deine LCD Ansteuerung funktioniert nicht richtig
absolut nichts miteinander zu tun haben.
Gast #538111
Lesenswert?

Das habe ich auch schon gedacht ... findest du/ oder Ihr denn vielleicht 
nen Fehler, Denkfehler oder so ...nenn Ansatz wo man mal weiter 
nachfoschen könnte ...

Ich sehe im Hauptprogramm nämlich KEINEN Fehler ..oder ihr? Das 
Hauptprogramm ist das was oben im Forum angedeutet ist.

Mfg

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