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
long (int_32) bei Mega?
15.11.2014, 16:39 (Dieser Beitrag wurde zuletzt bearbeitet: 15.11.2014 16:49 von HaWe.)
Beitrag #1
long (int_32) bei Mega?
hallo,
gibt es kein long (int_32) beim Mega?

ps,
falls doch:
wie kann ch mit sprintf eine long-Variable so formatieren, dass man sie anschließend seriell ausgeben kann?

long var=1200000;
char sbuf[29];

sprintf(sbuf, "meine Variable ist gleich %d", var);

bei mit gehen nur Zahlen bis ca, 35000 (maxint), dann zählt er bei rund -35000 wieder hoch.
(Sketch 1.5.6.r2)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.11.2014, 19:08
Beitrag #2
RE: long (int_32) bei Mega?
(15.11.2014 16:39)HaWe schrieb:  hallo,
gibt es kein long (int_32) beim Mega?

ps,
falls doch:
wie kann ch mit sprintf eine long-Variable so formatieren, dass man sie anschließend seriell ausgeben kann?

long var=1200000;
char sbuf[29];

sprintf(sbuf, "meine Variable ist gleich %d", var);

bei mit gehen nur Zahlen bis ca, 35000 (maxint), dann zählt er bei rund -35000 wieder hoch.
(Sketch 1.5.6.r2)

also ich definiere das immer so:
long int messwert; // oder
unsigned long int messwert2;
egal ob auf UNO oder MEGA, müßte sogar auf dem Tiny so sein weil überall die Function millis(); zur Verfügung steht und die gibt unsigned long int zurück...
Übrigens ist die int Grenze bei 32767...
lg
bk

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
15.11.2014, 19:45
Beitrag #3
RE: long (int_32) bei Mega?
ja, stimmt, 32767 ... hab nicht richtig nachgedacht.


Das Problem liegt aber woanders:

mit der long Deklaration geht es tatsächlich, und auch die direkte Ausgabe über Serial.print,

inzwischen aber festgestellt:
sprintf formatiert long mit "%d" in int um !!

wenn man also erst mit sprintf in einen string buffer formatiert und dann den string buffer per Serial.print ausgibt, dann kommt es zu dem komischen Überlauf.

(sprintf brauche ich für längere Ausgabezeilen mit Text und mehreren Variablen printf-typischen Formatierern)

was ein Mist... Undecided
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.11.2014, 20:54
Beitrag #4
RE: long (int_32) bei Mega?
(15.11.2014 19:45)HaWe schrieb:  ...
inzwischen aber festgestellt:
sprintf formatiert long mit "%d" in int um !!
...

ähm anstelle "%d" gibt es auch andere Formatierungsparameter, mußte mal googlen....gibt es einige...weis ich auswendig aber auch nicht...aber long int in String geht...
lg
bk

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
15.11.2014, 23:05 (Dieser Beitrag wurde zuletzt bearbeitet: 15.11.2014 23:14 von JoeDorm.)
Beitrag #5
RE: long (int_32) bei Mega?
Hallo,
habe hier eine Lösung, die ich meinem Heizungsprojekt eingearbeitet habe.

#include <PString.h>
char buf[20]; //String Buffer für PString Methode

String str(double d, int nk) {
PString(buf, sizeof(buf), d, nk);
return (buf);
}

Könnte vielleicht auch mit Long funktionieren, ansonsten long zu double, und schon kann man da was mit machen.

Gruß Joe


Angehängte Datei(en)
.zip  PString.zip (Größe: 3,32 KB / Downloads: 25)

Unser Projekt Rolleyes http://global-science-circle.net http://global-science-circle.org http://global-science-circle.info UND http://radio-gsc1.info
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.11.2014, 23:10 (Dieser Beitrag wurde zuletzt bearbeitet: 15.11.2014 23:16 von tito-t.)
Beitrag #6
RE: long (int_32) bei Mega?
ich kann den Sketch-Fehler bestätigen!

Formatierung von Integer geht nur mit %d (signed int) und %u (unsigned int).

das funktioniert mit allen C-compilern, sowohl mit int_16 als auch mit int_32 (long), auch int_8 (char) geht damit.
und sowohl mit printf als auch allen anderen ähnlichen formatierten I/O- Befehlen aus stdio.h.

http://www.cplusplus.com/reference/cstdio/printf/

Nur mit Sketch und int_32 funktioniert es nicht - da ist der Wurm drin!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Sad Sketch funktioniert auf dem Mega 2560 nicht Frank1234 14 224 Gestern 21:12
Letzter Beitrag: Frank1234
  Mega 2560 und deren RX/TX alpenpower 17 3.369 06.03.2017 13:25
Letzter Beitrag: Franz54
  Einstieg Arduino Mega Markus0815 14 555 08.01.2017 13:40
Letzter Beitrag: Tommy56
  Arduino Mega startet immer wieder neu Badger1875 9 932 26.12.2016 17:56
Letzter Beitrag: Badger1875
  2 Mega 2560 R3 unterschiedliche Firmware? Gonmaus 2 280 11.12.2016 13:40
Letzter Beitrag: P.Martin
  Datenübertragung vom Arduino Mega 2560 zu Hterm Datatom 1 204 13.11.2016 23:08
Letzter Beitrag: hotsystems
  Arduino Mega 2560 läuft nicht Wolfgang50 6 356 13.11.2016 10:50
Letzter Beitrag: Wolfgang50
  Arduino Mega 2560 Manfred1981 4 408 11.11.2016 18:07
Letzter Beitrag: hotsystems
  Attiny45 Bootloader brennen mit Funduino Mega toto1975 63 3.309 23.10.2016 17:08
Letzter Beitrag: hotsystems
Question Mega 2560 defekt? triode 11 509 29.09.2016 07:21
Letzter Beitrag: hotsystems

Gehe zu:


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