Door delay loopt klok achter
5 berichten
• Pagina 1 van 1
Door delay loopt klok achter
Ik heb 1 delay van 0 tot 2 sec in mijn sketch staan welke ingegeven wordt door een potmeter op A6.
In de loop () wacht het programma de tijd af welke met de potmeter op A6 wordt ingegeven tot de volgende loop ().
Het probleem is echter dat na een uur mijn klok (DS3231) al ~1 minuut achter loop als ik 2 sec instel.
void loop ()
int delaytime = analogRead(A7)*2;
----
rest van sketch
----
delay (delaytime); // eerste en enige delay
void (DS3231)
sketch van klok enz
Is het mogelijk om het zo te maken dat de delay geen invloed heeft op de tijd van de DS3231 ?
Met onderstaande code heb ik de afgelopen dagen geëxperimenteerd, maar ik kom er niet uit om dit in mijn sketch te weven.
Mvg, Rob
In de loop () wacht het programma de tijd af welke met de potmeter op A6 wordt ingegeven tot de volgende loop ().
Het probleem is echter dat na een uur mijn klok (DS3231) al ~1 minuut achter loop als ik 2 sec instel.
void loop ()
int delaytime = analogRead(A7)*2;
----
rest van sketch
----
delay (delaytime); // eerste en enige delay
void (DS3231)
sketch van klok enz
Is het mogelijk om het zo te maken dat de delay geen invloed heeft op de tijd van de DS3231 ?
Met onderstaande code heb ik de afgelopen dagen geëxperimenteerd, maar ik kom er niet uit om dit in mijn sketch te weven.
- Code: Alles selecteren
int prev_value = 0;
int value = 0;
unsigned long prev_read_time = 0;
void setup() {
prev_read_time = millis();
value = analogRead(A7)*2;
}
void loop() {
if (millis() - prev_read_time > 5) {
prev_read_time = millis();
prev_value = value;
value = analogRead(A7)*2;
if (prev_value != value) {
// value changed
}
}
}
Mvg, Rob
Advertisement
Re: Door delay loopt klok achter
is het een typfout?
je zegt dat je potmeter op A6 zit, waarom lees je deze dan uit op A7?
je zegt dat je potmeter op A6 zit, waarom lees je deze dan uit op A7?
Met vriendelijke groet Arjan
Re: Door delay loopt klok achter
Excuus, potmeter zit A7.
Dit is de stabilisatie/reken tijd voor de LDR's zodat de solartracker niet nerveus gaat staat jitteren.
Mvg, Rob
Dit is de stabilisatie/reken tijd voor de LDR's zodat de solartracker niet nerveus gaat staat jitteren.
Mvg, Rob
Re: Door delay loopt klok achter
Volgens mij wil je ongeveer dit:
of anders:
- Code: Alles selecteren
void setup() {
prev_read_time = millis();
delaytime = analogRead(A7)*2;
}
void loop(){
if( prev_read_time + delaytime > millis())
restvandesketch();
}
// else >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> doe even niets
restvandesketch(){
prev_read_time = millis();
delaytime = analogRead(A7)*2;
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rest van de sketch
}
of anders:
- Code: Alles selecteren
void setup() {
prev_read_time = millis();
delaytime = analogRead(A7)*2;
}
void loop(){
// rest van de sketch
wachtEven();
}
wachtEven(){
while (millis < prev_read_time + delaytime){
//doe even niets
}
prev_read_time = millis();
delaytime = analogRead(A7)*2;
}
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 38 gasten