Vast een simpel Arduino vraagje, maar het werkt niet.

Shiptronic

Golden Member

Helaas vind ik die pic basic duidelijker te volgen ;)
Wie de vraag stelt, zal met het antwoord moeten leren leven.
Die sprongen in je voorbeeld moet je niet willen. Dat wordt chaos.
Die stappen A, B etc zou je kunnen zien als taken. Stel A is het schrijven naar display, B is het scannen van het keyboard, C is het uitlezen van temp.sensor, etc. Als je wilt communiceren van de ene naar de andere taak dan doe je dat via variabelen. Bv temp.sensor schrijft de temp ergens neer. Het display proces leest het weer uit en zet het op het display. Zo KAN het, kan ook anders.

Wat jij eigenlijk wilt met dat springen is gewoon het aanroepen van een functie. Een complexere operatie breng je onder in die functie. In je hoofdprogramma staat dan alleen (bv) print("pietje") maar in de functie een hele rits andere instructies.
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Op 10 januari 2019 22:47:03 schreef Shiptronic:
Helaas vind ik die pic basic duidelijker te volgen ;)

True... ;-)

Het is lastig om specifiek te zijn met wat ik wil.
Niet zo zeer omdat ik weer eens niet alles wil laten zien, maar meer omdat ik mogelijk beren op de weg zie die er niet zijn.
Ik mijmer regelmatig tijdens het autorijden hóe ik wát wil doen.
Ik ben zelf ook van de loopjes en loopjes binnen loopjes.
Maar soms loop ik tegen situaties aan waarbij ik van de ene loop naar de andere moet. AArgh... Lastig uit te leggen.

Ik probeer het zo uit te tekenen...
Een loop in een loop waar ergens diep binnenin een conditie moet bestaan die het process halverwege een ander loopje moet brengen.

Weet je...
Ik kan hier wel uit komen door er een variabele aan te knopen die wanneer deze "hoog" is, door alle statements kan loodsen, maar een Goto zou hierin veel gemakkelijker zijn.
Echt niet in een constante loop, maar onder bepaalde omstandigheden.
Een Break is ook zoiets... Die springt uit een actieve loop zonder aan de oorspronkelijke condities te voldoen.
Anyway... Daar is wel wat mee te doen.
Ik vond het alleen jammer dat het begrip GoTo een beetje ter ziele is gegaan. :-)

[update]
Hij bestaat nog altijd, incl. de bijbehorende waarschuwing.
Goed te weten. :-)
https://www.arduino.cc/reference/en/language/structure/contr...ture/goto/
[/update]
boe
Waarom post je niet even een concreet voorbeeld van iets wat je wilt maken. We zitten nu een beetje in algemene termen dingen uit te leggen, maar dat muntje valt nog steeds niet. Je denkt in een verkeerde richting met je gotos. Je denkt spagetti.
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
die paarse lijn kun je compleet weglaten door de bovenste rode loop afhankelijk te maken van de variabele, maar dan NIET.

dus als je de paarse lijn wilt uitvoeren, breek je uit de 3e rode, sla je de 1e rode over en ben je er ook.
GMT+1
Ik ben het in die zin even met FlipFlop eens dat ik eerst een voorbeeld moet aandragen.
En dat heb ik nog niet omdat ik op voorhand verwachtte tegen problemen aan te lopen.

Ik heb op de Arduino pagina gezocht naar de GoTo functie en die wordt inderdaad gebruikt wanneer je diep genesteld zit, een aantal loops diep.

Ik kan wel voorwaardes scheppen in elke voorgaande loop om het programma om te leiden, maar dat maakt het juist onoverzichterlijker.
* Fantomaz is wel een beetje van de warp zones. :-)

Voor alsnog zet ik dit in de ijskast.
Als ik inderdaad uitkom op een diep genestelde loop vanwaar ik onder omstandigheden naar een totaal ander deel van het programma moet gaan, leg ik dat voorbeeld hier voor, mét de GoTo oplossing.
Dan wil ik graag weten hoe jullie dat zouden doen.
boe
...en dan zeggen wij wel dat die goto er onherroepelijk uit moet, niet nodig is en not-done. Och, heb ik het nu al gezegd! :-)
"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein