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

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
  Arduino Mega mit Shield und 7" Touch Tudorf 10 496 25.02.2018 14:30
Letzter Beitrag: Tommy56
  Daten vom Arduino Mega an Nextion Diskusguppy 4 311 25.02.2018 13:29
Letzter Beitrag: hotsystems
  COM Port bei Arduino Mega? LoroLoco 8 750 19.01.2018 12:49
Letzter Beitrag: hotsystems
  timer Mega 2560 4x tone Output see 6 533 11.01.2018 20:11
Letzter Beitrag: Tommy56
  TFT 2.8" SPI bleibt weiß MEGA 2560 tillmg 15 1.299 06.01.2018 15:36
Letzter Beitrag: tillmg
  Arduino MEGA + EthernetShield W5100 und weiteres SPI Device ? Stargazer 12 1.191 11.10.2017 19:03
Letzter Beitrag: Tommy56
  Mega 2560 Visualisieren binderj1 11 989 01.10.2017 19:07
Letzter Beitrag: Tommy56
  Logger am Mega 2560 Wolfgang50 3 527 13.09.2017 10:53
Letzter Beitrag: Tommy56
Wink Arduino TFT Display MEGA 2560 Samsuino 47 5.227 24.07.2017 12:45
Letzter Beitrag: Harry Hirsch
  Treiberprobleme Arduino Mega 2560 DonAthello 19 2.280 14.07.2017 10:14
Letzter Beitrag: SkobyMobil

Gehe zu:


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