2 loops tegelijk laten werken

algemene C code
Berichten: 139
Geregistreerd: 28 Jul 2013, 13:30

2 loops tegelijk laten werken

Berichtdoor ercmrj » 28 Dec 2013, 13:06

Ik ben een snelheidsmeter aan het bouwen, maar nu wil ik bij bepaalde snelheden een waarschuwingsignaal creëren dmv een ledje wat dan een paar seconden aan gaat.

Met behulp van de sensor van een oude fietscomputer kan ik de signalen van de sensor omzetten in een getal op een display.

Echter als het display bv 30 aangeeft en ik wil dan een signaal versturen van een paar seconden naar bv een ledje, dan krijg ik in de tussentijd geen signalen van de sensor van de fietscomputer meer binnen omdat de arduino met iets anders bezig is met gevolg dat de snelheid naar beneden gaat wat in de praktijk natuurlijk niet het geval is.

Is er een functie beschikbaar in C++ van arduino waarmee de ene lus gewoon door blijft lopen als mijn programma bezig is in een andere lus?

Advertisement

Berichten: 108
Geregistreerd: 07 Aug 2013, 21:34

Re: 2 loops tegelijk laten werken

Berichtdoor KrisG » 28 Dec 2013, 13:43

ledje aanzetten,
terug signalen meten
als er 1 seconde voorbij is, led je terug uitzetten.

Kris
Als je het probleem gedetailleerd genoeg omschrijft, heb je meestal al de oplossing.

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

Re: 2 loops tegelijk laten werken

Berichtdoor nicoverduin » 28 Dec 2013, 18:48

ercmrj schreef:Ik ben een snelheidsmeter aan het bouwen, maar nu wil ik bij bepaalde snelheden een waarschuwingsignaal creëren dmv een ledje wat dan een paar seconden aan gaat.

Met behulp van de sensor van een oude fietscomputer kan ik de signalen van de sensor omzetten in een getal op een display.

Echter als het display bv 30 aangeeft en ik wil dan een signaal versturen van een paar seconden naar bv een ledje, dan krijg ik in de tussentijd geen signalen van de sensor van de fietscomputer meer binnen omdat de arduino met iets anders bezig is met gevolg dat de snelheid naar beneden gaat wat in de praktijk natuurlijk niet het geval is.

Is er een functie beschikbaar in C++ van arduino waarmee de ene lus gewoon door blijft lopen als mijn programma bezig is in een andere lus?


Code: Alles selecteren
//
// waar je de led aan wil zetten
//
digitalWrite(LEDJE, HIGH);
unsigned long teller = millis() + 3000L;  // zet de uit tijd op NU + 3 seconden

//
// in het stuk code waar je de input van de fiets computer verwerkt:
//
if (teller != 0L) {                              // alleen uitvoeren als de teller is gezet
    if (millis() > teller) {                      // tijd is voorbij
       digitalWrite(LEDJE, LOW);
       teller = 0L;
    }
}
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 139
Geregistreerd: 28 Jul 2013, 13:30

Re: 2 loops tegelijk laten werken

Berichtdoor ercmrj » 29 Dec 2013, 12:51

Bedankt, het is gelukt.

Ik kan hem op deze manier natuurlijk ook laten even laten knipperen, zolang ik maar geen delay() gebruik neem ik aan.

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: 2 loops tegelijk laten werken

Berichtdoor shooter » 02 Jan 2014, 23:11

ja delay is een onding
ik zou het declareren wel in de setup doen en niet in de loop,want dat kost telkens tijd, en wellicht geheugen.
zo kun je dus ook meerdere tijden tegelihk doen.
en dan heb je ook nog interupts om het nog sneller te doen.
paul deelen
shooter@home.nl

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 5 gasten