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: 54)

Unser Projekt Rolleyes https://global-science-circle.net http://global-science-circle.info http://global-science-circle.de http://radio-gsc1.info und neuerdings https://gch.global https://entsalzung.gch.global
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
  Logger am Mega 2560 Wolfgang50 3 162 13.09.2017 10:53
Letzter Beitrag: Tommy56
Wink Arduino TFT Display MEGA 2560 Samsuino 47 2.935 24.07.2017 12:45
Letzter Beitrag: Harry Hirsch
  Treiberprobleme Arduino Mega 2560 DonAthello 19 1.394 14.07.2017 10:14
Letzter Beitrag: SkobyMobil
Sad Sketch funktioniert auf dem Mega 2560 nicht Frank1234 16 1.012 26.03.2017 14:15
Letzter Beitrag: oOSpikeOo
  Mega 2560 und deren RX/TX alpenpower 17 4.272 06.03.2017 13:25
Letzter Beitrag: Franz54
  Einstieg Arduino Mega Markus0815 14 1.236 08.01.2017 13:40
Letzter Beitrag: Tommy56
  Arduino Mega startet immer wieder neu Badger1875 9 1.467 26.12.2016 17:56
Letzter Beitrag: Badger1875
  2 Mega 2560 R3 unterschiedliche Firmware? Gonmaus 2 518 11.12.2016 13:40
Letzter Beitrag: P.Martin
  Datenübertragung vom Arduino Mega 2560 zu Hterm Datatom 1 445 13.11.2016 23:08
Letzter Beitrag: hotsystems
  Arduino Mega 2560 läuft nicht Wolfgang50 6 608 13.11.2016 10:50
Letzter Beitrag: Wolfgang50

Gehe zu:


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