Vreemd resultaat

Arduino specifieke Software
Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Vreemd resultaat

Berichtdoor nicoverduin » 02 Okt 2016, 17:46

Verander deze regel
cpp code
sprintf(titel,"%s-%d %2d:%2d | %d, %d ,%d ,%d ",weekdagen[now.dayOfTheWeek()],now.day(),now.hour(),now.minute(),LwPuls,GasPuls,RwPuls,ElecPuls);


in

cpp code
sprintf(titel,"%s-%d %2d:%2d | %ld, %ld ,%ld ,%ld ",weekdagen[now.dayOfTheWeek()],now.day(),now.hour(),now.minute(),LwPuls,GasPuls,RwPuls,ElecPuls);


Die puls getallen zijn unsigned long en geen int.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Advertisement

Gebruikers-avatar
Berichten: 43
Geregistreerd: 09 Jan 2015, 15:09

Re: Vreemd resultaat

Berichtdoor hv0805 » 02 Okt 2016, 17:52

Koepel,

Bedankt voor de info, dat was het inderdaad:
"Je zet unsigned long (variabelen van 4 byte) op de stack en met "%d" gebruik je maar 2 byte. Die nullen zijn de twee andere bytes."
Ik heb er %ld van gemaakt en nu worden ze wel degelijk juist en op de juiste plaats geprint.
Ik was (weer eens) te snel, ik moet het aantal pulsen later nog omrekenen naar herkenbare waarden zoals Liter; m³ en Kwh, maar dat ik pas doen als alles werkt, dan kan ik het aantal pulsen exact meten en nadien omzetten.
Deze resultaten worden dan gewoon (unsigned int) omdat 65536 wel voldoende zal zijn.

Dank voor de oplossing.

Vorige

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: ogopunoy en 20 gasten