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

Meine Vision Rolleyes http://global-science-circle.org
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
  Datenübertragung vom Arduino Mega 2560 zu Hterm Datatom 1 94 13.11.2016 23:08
Letzter Beitrag: hotsystems
  Arduino Mega 2560 läuft nicht Wolfgang50 6 174 13.11.2016 10:50
Letzter Beitrag: Wolfgang50
  Arduino Mega 2560 Manfred1981 4 185 11.11.2016 18:07
Letzter Beitrag: hotsystems
  Attiny45 Bootloader brennen mit Funduino Mega toto1975 63 2.179 23.10.2016 17:08
Letzter Beitrag: hotsystems
Question Mega 2560 defekt? triode 11 357 29.09.2016 07:21
Letzter Beitrag: hotsystems
  nrf24 an Mega 2560 jgrothe 2 161 10.09.2016 13:39
Letzter Beitrag: jgrothe
  Arduino mega 2560 mit TFT LCD Touch Shield V1 Clemens55555 17 934 02.08.2016 20:51
Letzter Beitrag: Clemens55555
  Mega: Hardware i2c bus speed (Wire.) verändern? HaWe 10 2.915 14.07.2016 20:09
Letzter Beitrag: Mathias
  (Mega) Timer 3 A, B & C Scheams 0 227 04.06.2016 17:09
Letzter Beitrag: Scheams
  Rechnen mit float und unsigned long Rudi 3 301 03.06.2016 12:41
Letzter Beitrag: hotsystems

Gehe zu:


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