INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
sprintf formatiert völlig falsch !
11.12.2014, 22:49 (Dieser Beitrag wurde zuletzt bearbeitet: 11.12.2014 22:52 von HaWe.)
Beitrag #1
sprintf formatiert völlig falsch !
so -
jetzt kontrolliert:

code:
Code:
sprintf (buf, "gesamt ms: %8d ", y);  Serial.println( buf);
  
  y=50000000.0/y;
  sprintf (buf, "benchmark: %8d ", y ); Serial.println( buf);

Ausgabe:
Code:
..
  6   12016  TextOut
  7   24138  Graphics

aber in echt (ca.) :

Code:
..
  6   90000  TextOut
  7  220000  Graphics
was ein Mist!
ich habe doch keinen Fehler gemacht, oder ???
das ist ja um Davonlaufen!!

sourcecode:

http://www.mindstormsforum.de/viewtopic....463#p65463
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.12.2014, 23:31
Beitrag #2
RE: sprintf formatiert völlig falsch !
Hi,
Du müsstest schon ein bisschen mehr liefern. Vermutlich ist aber y kein int, sondern long oder so. Versuch mal %8ld statt %8d.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.12.2014, 23:33
Beitrag #3
RE: sprintf formatiert völlig falsch !
(11.12.2014 22:49)HaWe schrieb:  so -
jetzt kontrolliert:

code:
Code:
sprintf (buf, "gesamt ms: %8d ", y);  Serial.println( buf);
  
  y=50000000.0/y;
  sprintf (buf, "benchmark: %8d ", y ); Serial.println( buf);

Ausgabe:
Code:
..
  6   12016  TextOut
  7   24138  Graphics

aber in echt (ca.) :

Code:
..
  6   90000  TextOut
  7  220000  Graphics
was ein Mist!
ich habe doch keinen Fehler gemacht, oder ???
das ist ja um Davonlaufen!!

sourcecode:

http://www.mindstormsforum.de/viewtopic....463#p65463

Was isn das hier wieder für ein Märchen das da aufgetischt wird HuhConfused
Also als erster passen deine Codezeilen zu der Ausgabe nicht zusammen.
Zweitens weiß so keiner als was die Variablen deklariert sind.
Drittens sind wir hier nicht bei Lego Minstormes und in deren ihrem Compiler können wohl ganz andere Standarts gesetzt sein. Confused

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2014, 00:02 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2014 00:06 von HaWe.)
Beitrag #4
RE: sprintf formatiert völlig falsch !
mit dem Due stimmt es, nur nicht mit dem Mega!

hier ist der Sourcecode (ich hatte ihn bereits verlinkt!)

http://www.mindstormsforum.de/viewtopic....463#p65463

die echten Laufzeiten habe ich mit einer Stoppuhr mitgestoppt.
Due korrekt, Mega völlig daneben.

Hier die komplett richtigen (gestoppten) Werte im Vergleich:
http://www.mindstormsforum.de/viewtopic....772#p64772
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2014, 08:46
Beitrag #5
RE: sprintf formatiert völlig falsch !
Hast Du meine Antwort gelesen?

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2014, 09:35 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2014 09:57 von HaWe.)
Beitrag #6
RE: sprintf formatiert völlig falsch !
hallo Thorsten,
entschuldige, das mit dem %ld" hatte ich tatsächlich überlesen - ich hatte mich durch den nachfolgenden Post verwirren lassen... Undecided

%ld war mir aber bisher auch völlig unbekannt - das ist doch kein ANSI C Standard?
%d funktioniert normalerweise sogar mit 64 bit long... :o

Aber du hast vollkommen Recht!
Damit funktioniert es !

Tausend Dank! 8-)


ps,
neuer aktualisierter Benchmark-Test-Code:
http://www.mindstormsforum.de/viewtopic....463#p65463
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2014, 10:21
Beitrag #7
RE: sprintf formatiert völlig falsch !
(12.12.2014 09:35)HaWe schrieb:  %ld war mir aber bisher auch völlig unbekannt - das ist doch kein ANSI C Standard?
Hi,
ich glaube, bei C kommt es immer darauf an, was die Hardware kann. Wenn man auf einer 64-Bit-Maschine ist, dann kann "int" auch mal 64 Bit sein.
Meine (s)printf-Referenz ist das hier:
http://www.cplusplus.com/reference/cstdio/printf/
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2014, 12:57 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2014 12:58 von HaWe.)
Beitrag #8
RE: sprintf formatiert völlig falsch !
haha, genau DAS ist auch meine Referenz!

Aber der Deal ist: Völlig egal, wieviel bit der µC oder das OS hat -
%d funktioniert IMMER mit ALLEN Integern, egal ob 8 oder 16 oder 32 bit oder was weiß ich was !!
mit %u genauso, nur eben für unsigned!

Und in unserer Referenz steht ja auch NIRGENDS was von %ld, oder habe ich was übersehen?
Davon hatte ich auch noch nie was gehört, weder auf dem 8-bit Renessas H8 noch auf den 32-bit ARM 7 oder 9.

Das ist wohl wieder so ein spezieller Arduino-Hirnkrampf, wie mir scheint Wink

(CMIIW) Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Probleme mit sprintf() und dtostrf() GMBU 11 817 22.06.2016 10:52
Letzter Beitrag: GMBU
  OLED Display anzeige von Logo falsch ! b3ta 0 338 23.01.2016 15:12
Letzter Beitrag: b3ta
  erledigt: atan2 rechnet falsch? HaWe 0 345 30.11.2015 17:29
Letzter Beitrag: HaWe
  [gelöst] was ist falsch bei Wire.onReceive()? HaWe 0 636 26.09.2015 16:58
Letzter Beitrag: HaWe
  String falsch verstanden? hougy 20 1.803 07.07.2015 14:53
Letzter Beitrag: HaWe
  sprintf() plus scanf() : ständig Fehler, warum? HaWe 15 1.827 28.02.2015 15:31
Letzter Beitrag: HaWe
  Funktion ähnlich variabel definieren wie sprintf HaWe 21 1.800 24.02.2015 11:12
Letzter Beitrag: HaWe
  Daten von File auf SD Card (formatiert) schreiben+lesen u.a.m. HaWe 19 3.669 16.02.2015 19:50
Letzter Beitrag: HaWe
  sprintf invalid operands of types sepp01 34 5.611 26.12.2014 08:38
Letzter Beitrag: aoLaopsa
  Switch Case, LEDs bleiben an, Bedingung aber falsch luto92 4 1.447 16.11.2014 16:52
Letzter Beitrag: luto92

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste