Seconde tellen ?
6 berichten
• Pagina 1 van 1
Seconde tellen ?
Wat doe of denk ik hier fout ?
Ik heb een RTC aan mn arduino hangen en doet het prima
echter, ik wil bepaalde acties om de 10 seconde laten uitvoeren
Sensor uitlezen, ventilator aan/uit schakelen enz...
Als ik Time.h gebruik dan zou now() het aantal secondes moeten geven sinds 01-01-1970
Als ik onderstaande code gebruik, wordt de volgende actie pas na ca 65 seconds doorlopen ipv de 10 seconde die ik verwacht....
Maak ik een denk/programmeerfout ?
cpp code
Ik heb een RTC aan mn arduino hangen en doet het prima
echter, ik wil bepaalde acties om de 10 seconde laten uitvoeren
Sensor uitlezen, ventilator aan/uit schakelen enz...
Als ik Time.h gebruik dan zou now() het aantal secondes moeten geven sinds 01-01-1970
Als ik onderstaande code gebruik, wordt de volgende actie pas na ca 65 seconds doorlopen ipv de 10 seconde die ik verwacht....
Maak ik een denk/programmeerfout ?
cpp code
float nLoopTimer = 0;
void setup() {
// RTC en Time
setSyncProvider(RTC.get); // the function to get the time from the RTC
if (timeStatus() != timeSet){
// Serial.println(F("Unable to sync with the RTC"));
}
else {
// Serial.print(F("RTC has set the system time "));
}
}
void loop() {
// Sensor shizzle, elke 10 sec
float nu = now();
if (nu > nLoopTimer+10) {
//
// code elke 10 sec
//
nLoopTimer = now();
}
}
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Seconde tellen ?
Ik vind het knap dat je de seconden als float benaderd.....
Re: Seconde tellen ?
nico heeft natuurlijk gelijk,
het is een INT lekker lang hihi
kijk dan eens naar de functie MOD.
en zoals gewoonlijk kijk naar blink without delay, dat hoeft natuurlijk niet met millis() maar kan ook met now()
het is een INT lekker lang hihi
kijk dan eens naar de functie MOD.
en zoals gewoonlijk kijk naar blink without delay, dat hoeft natuurlijk niet met millis() maar kan ook met now()
paul deelen
shooter@home.nl
shooter@home.nl
Re: Seconde tellen ?
M.a.w. De fout was dat ik geen float maar long moet gebruiken.
Het getal was te groot voor de float.
Als ik een long gebruik, kan ik nog 23 jaar vooruit.
Het getal was te groot voor de float.
Als ik een long gebruik, kan ik nog 23 jaar vooruit.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Seconde tellen ?
Nou je kan nog veel meer problemen krijgen als je met een int (of long) moet werken itt een float. De notatie wijze intern voor een float is anders dan die van een int (16 bits) of long(32 bits). Daarnaast is de precisie anders bij een float dan bij de ints en longs. floats hebben op de 8 bits atmels weinig precisie (totaal 7 cijfers). Dat klintk veel, maar mocht je denken het getal 100.12345 nog nauwkeurig te hebben dan heb je het al mis. Op het Arduino platform kom je nog weg met dit soort conversies (int naar float) zonder casting (google maar eens). Bij de grotere platformen krijgt je met de hoogste warning level (en je doet er goed aan om dat toe te passen) de fouten om je oren.
Wees altijd alert op omzettingen tussen int/long/float/char/byte/uintxx_t's. In C kan je veel maar ook veel verkl.t.en
Wees altijd alert op omzettingen tussen int/long/float/char/byte/uintxx_t's. In C kan je veel maar ook veel verkl.t.en
Re: Seconde tellen ?
Aldoende leert men..
En dat alleen maar om een actie om de 10 seconde te doen...
Maar de manier waarop je reageerde op mn vraag kan ik wel waarderen
Wel zeggen wat je fout doet maar niet zeggen wat de oplossing is...
Dank, Zo leer ik weer wat
Maar nu heb ik met mn project een heel ander probleem
Waarschijnlijk electrisch gerelateerd..
Hier open ik wel een post voor onder het juiste subforum
Gerard
En dat alleen maar om een actie om de 10 seconde te doen...
Maar de manier waarop je reageerde op mn vraag kan ik wel waarderen
Wel zeggen wat je fout doet maar niet zeggen wat de oplossing is...
Dank, Zo leer ik weer wat
Maar nu heb ik met mn project een heel ander probleem
Waarschijnlijk electrisch gerelateerd..
Hier open ik wel een post voor onder het juiste subforum
Gerard
6 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 29 gasten