Kom niet uit do-while-loop

IDE gerelateerde berichten
Berichten: 47
Geregistreerd: 29 Sep 2019, 18:42
Woonplaats: Vlijmen

Re: Kom niet uit do-while-loop

Berichtdoor Dorus1404 » 06 Okt 2021, 04:41

Hij doet het!! Bedankt mannen. Alleen de eerste loop van Nico resulteerde in hetzelfde effect als ik zelf al had bereikt. De loop gaat door en of pinin LOW wordt of niet maakt niks uit. Het verschil met de do-while-loop van Frits is dat hij digitalRead heeft toegevoegd en dat werkt wel.
Merkwaardig dat ik dat zelf zo niet geprobeerd heb. Inmiddels weet ik al niet meer wat ik allemaal geprobeerd heb, maar zoals ik zie geeft een klein verschil een groot ander effect.

Advertisement

Berichten: 180
Geregistreerd: 26 Aug 2015, 11:57

Re: Kom niet uit do-while-loop

Berichtdoor Frits1956 » 06 Okt 2021, 17:37

De enige (voor zover ik weet) commando's om de status van een input pin te weten is digitalRead(pin nummer) of analogRead(pin nummer). De compiler verwacht bij het lezen (read) van een pin altijd 1 paramater te weten het pin nummer wat je wil uitlezen.
Een aldus verkregen waarde kan je, al dan niet aan een variabele toekennen, direct vergelijken met iets of direct een actie op ondernemen.

Het commando (pin nummer, waarde) of met voorbeelden (6,LOW) en (pinout,LOW) doet niets, is niets en de computer kan er niets mee. De compiler (het programma dat de C-taal omzet in machinetaal) zal een dergelijk commando dan ook negeren.

Als je een pin wil schrijven(write) zijn er (voor zover ik weet) 2 commando's te weten digitalWrite en AnalogWrite. In beide gevallen verwacht de compiler 2 parameters te weten, het pin nummer wat je wil schrijven en de waarde die je daar naartoe wil schrijven gescheiden door een komma.
Dus: digitalWrite( pin nummer, de te schrijven waarde) of analogWrite( pin nummer, de te schrijven waarde)
bijvoorbeeld digitalWrite(6,LOW);

jouw pinin = 5 en pinout = 6 zijn er om het voor jou makkelijker te onthouden wat de input pin is en wat de uitput pin is. De compiler vertaalt dat in welk pootje van de processor de opdracht krijgt. Zo is in jouw sketch digitalWrite(pinout, HIGH); precies hetzelfde als digitalWrite(6, HIGH); en is digitalRead(5); exact hetzelfde als digitalRead(pinin);

Ik hoop je hiermee wat duidelijker vertelt te hebben hoe je verschillende statements (commando's) moet gebruiken.
Suc7 met programmeren.

Berichten: 287
Geregistreerd: 15 Apr 2021, 20:05

Re: Kom niet uit do-while-loop

Berichtdoor ctunes » 22 Okt 2021, 23:41

Waarom een do while loop op dergelijke wijze gebruiken?

loop() in zichzelf is het al?

Ik vermoed een geheugenprobleem door stackoverflows.
(Embedded/RT-programming is wat anders dan een webpagina)

Vorige

Terug naar Arduino IDE

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten