Rudi01:
Die Zeilen funktionieren mit dem von Dir vorgeschlagenen Programmteilen leider nicht.
gibt es eventuell noch eine andere Möglichkeit.
Ich sollte den Wert des pbuf auch noch weiterverwenden Dieser muß von einem anderen Wert abgezogen werden.
Die von mir vorgeschlagene Formatierung mit Vor- und Nachkommastellen funktioniert so, allerdings ist der Code nur für positive Zahlen gut brauchbar:
void formatLong(unsigned long zahl) // Vorsicht, nur für positive Zahlen!
{
char buf[20];
snprintf(buf,sizeof(buf),"%6ld.%02ld",zahl/100,zahl%100);
Serial.println(buf);
}
Um negative Zahlen auf dieselbe Art korrekt zu formatieren, ist doch etwas mehr Aufwand nötig, als ich zunächst dachte (das eine "abs" reicht leider nicht). Deshalb verwendest Du für negative und positive Zahlen am besten die Methode von Serenifly.
Den long-Wert per Division durch 100.0 in einen Gleitkommawert umwandeln und als Gleitkommazahl mit dtostrf formatieren, das funktioniert dann auch für negative Zahlen problemlos (bis 7-stellig brauchbar, also nicht für den gesamten long-Bereich):
void formatLong(long zahl) // Für positive und negative Zahlen,
{ // Vorsicht: eingeschränkter long-Wertebereich!
char buf[20];
dtostrf (zahl/100.0, 10, 2, buf);
Serial.println(buf);
}
Nachtrag:
Ich sehe bei Dir oben Dinge wie:
"Erwähnen sollte ich vieleicht noch dass ich den Drehenkoder mittels einer Zusatzschalung entprelle"
und:
attachInterrupt(0, count, FALLING );
So macht man keine zuverlässige Drehgeberauswertung! Besser funktioniert es so (und ohne "Zusatzschaltung"):
Entweder entprellst Du mechanisches Prellen von Drehgebern zeitlich (wie auch bei Tastschaltern/Buttons) und wertest per Timer-Interrupt aus. Oder wenn die Loop keine expliziten und impliziten Delay-Zeiten enthält und stets in höchstens zwei Millisekunden abgearbeitet wird, kommt sogar eine Auswertung in der loop-Funktion komplett ohne Interrupts in Frage. Die (zugegebenermaßen schon oft gesehene) Auswertung von Drehgebern mit Hardware-Interrupts oder PinChange-Interrupts ist so ziemlich die schlechteste aller Möglichkeiten, um Drehgeber auszuwerten.