Go Down

Topic: direct uit loop met delays (Read 352 times) previous topic - next topic

jerommeke

Ik heb een paar loops met delays erin.

Wil als een pin hoog wordt direct uit de loop.

Nu las ik dat het met millis ipv delay zou gaan maar iik via interrupt.

Vraag. Klopt het dat wanneer je millis ipv delay gebruikt je direct uit de loop kunt zonder op een for of while the wachten?

zo niet werk het dan wel met interrupt.
Ik heb een unu met lcd display die pin 2 3n 3 gebruiken. Als ik het goed lees zijn 2 en 3 een interrupt pin.
Kan ik dus niet gebruiken ?? of is er een andere oplossing?

MAS3

Hoi.

Het is vrij onwaarschijnlijk dat je een interrupt nodig hebt om te doen wat je vraagt, tenzij je echt op de duizendste seconde nauwkeurig iets moet doen.

Wanneer je slim programmeert, kun je "met millis ipv delay" heel snel omschakelen.
Wanneer je snel wil reageren, heb je helemaal niets aan delay() en ook niet aan while(), want dat is blokkerende code.
Ik kan je alleen maar aanraden om met millis te gaan werken, en de aangewezen manier om dat te leren, is de blink without delay sketch.

Er zal vast even tijd gaan zitten in het doorgronden ervan, maar dat is zeker weten de moeite waard,

Nog sneller reageren dan alleen met millis te werken kan ook.
Dan maak je allemaal stukjes deelcode (functies heten die dan), en ga je telkens voordat je naar de volgende functie gaat, even kijken of je niet moet stoppen en iets anders moet gaan doen.
Dat kijken doe je dan natuurlijk ook weer in een eigen functie.
Zo kun je dus nog sneller reageren op een bepaald event (je pin die hoog word).

Als je functies te lastig vind, kun je natuurlijk ook heel vaak in je code even naar die pin kijken.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

shooter

een delay stopt de processor tot de tijd voorbij is.
als je een timer gebruikt loopt de processor wel door en gaat dan even naar een functie als de tijd om is. Maar dan alleen als je dat test.
een interupt gaat altijd naar een functie toe.
paul deelen
shooter@home.nl
making controls with codesys PLC and arduino

Go Up