Ik probeer de For loops te begrijpen, maar loop wat vast.

Arduino specifieke Software
Berichten: 30
Geregistreerd: 14 Dec 2018, 14:39

Ik probeer de For loops te begrijpen, maar loop wat vast.

Berichtdoor FTMZ » 17 Sep 2020, 20:14

Hallo mensen,

Ik heb een stukje code waarbij er 6x een handeling moet worden gedaan, of korter wanneer niet aan een voorwaarde wordt voldaan.

Nu heb ik dat met select-case gedaan, in een functie, maar dat is wat onbehouwen. Daarbij... Een For loop zou zich hier meer voor lenen.

Alleen krijg ik dat niet in m'n bol.
Mag ik daar even met jullie over sparren?
Het zijn van die dingen die ik niet lijk te begrijpen.

Als ik ergens een paar voorbeelden heb, al dan niet met uitleg, kom ik een heel end.
Zoeken op "For" of "For loop" in de searchindex op de Arduino site geeft héél veel hits, maar niet op een manier zoals ik het zoek.

Anyway... Heeft iemand een zetje in de juiste richting, waar ik op kan inhaken met vragen zodat ik het ga begrijpen? :)

Advertisement

Berichten: 68
Geregistreerd: 21 Apr 2013, 22:48
Woonplaats: Hoorn

Re: Ik probeer de For loops te begrijpen, maar loop wat vast

Berichtdoor babbelkwebbel » 18 Sep 2020, 06:58

misschien handig als je laat zien wat je tot nu toe gemaakt heb, of te wel post even je code, dan is het makkelijk om je in de goede richting te duwen!....

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

Re: Ik probeer de For loops te begrijpen, maar loop wat vast

Berichtdoor shooter » 18 Sep 2020, 10:59

een for loop is niets anders dan een teller die op of aftelt
je kunt dus beginnen met een bepaald getal en eindigen bij een bepaald getal, als laatste kun je opgeven hoeveel er op getelt wordt want dat moet niet 1 zijn maar kan ook 123 zijn.
je kunt eruit gaan met een break commando.
een andere manier is om het zelf te maken door naar een functie te springen waar je een variabele telkens ophooogt tot de max bereikt is.
maar dat mag natuurlijk ook iets anders zijn.
en zoals kwabbel al zegt, laat wat zien of wij je wel goed begrijpen
paul deelen
shooter@home.nl

Berichten: 30
Geregistreerd: 14 Dec 2018, 14:39

Re: Ik probeer de For loops te begrijpen, maar loop wat vast

Berichtdoor FTMZ » 19 Sep 2020, 20:41

Dank voor de reacties zover.
Ik kan mijn code wel posten maar die is zo geintegreerd in een groter geheel dat je door de bomen het bos niet meer ziet.

Ik probeer het relevante stukje code eruit te vissen:
Code: Alles selecteren
 {switch (KarPos)
  {case 7:
   Kar = PS;
   case 6:
   Kar = (Kar + (PS * 2));
   case 5:
   Kar = (Kar + (PS * 4));
   case 4:
   Kar = (Kar + (PS * 8));
   case 3:
   Kar = (Kar + (PS * 16));
   case 2:
   Kar = (Kar + (PS * 32));
   case 1:
   Kar = (Kar + (PS * 64));
   case 0:
   Kar = (Kar + (PS * 128));
  }
 }

(elders, buiten deze Functie, zaten een paar punten die de KarPos steeds met 1 verlaagden, voor ze de Functie in gingen.)

Het is een optelling van een 1 of 0 situatie, die uiteindelijk een decimale waarde uit een reeks bits haalt.

Ik moet dus tellen vanaf 7 naar 0 (het zijn er inmiddels 8 bits geworden, ipv de oorspronkelijke 6 bits.

Deze Switch/Case is daar niet echt voor geschikt hoewel het wel werkt.

Als ik een For loopje maak, zou dat worden:
Code: Alles selecteren
 For (KarPos = 7; Karpos = 0 ; KarPos--)
 {Kar = (Kar +(PS * 2))}


Ik breek m'n hoofd er nogal over...

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: Ik probeer de For loops te begrijpen, maar loop wat vast

Berichtdoor zuid » 20 Sep 2020, 10:13

For (KarPos = 7; Karpos = 0 ; KarPos--) // Karpos = 0 moet zijn Karpos >= 0
{Kar = (Kar +(PS * 2))} // PS * 2 ---> 2 blijft 2 en dus niet 2, 4,8,......128

Berichten: 30
Geregistreerd: 14 Dec 2018, 14:39

Re: Ik probeer de For loops te begrijpen, maar loop wat vast

Berichtdoor FTMZ » 20 Sep 2020, 16:20

zuid schreef:For (KarPos = 7; Karpos = 0 ; KarPos--)


OK... Dus: Variabele KarPos is initieel 7, Zolang meer dan 0 is, elke keer KarPos met 1 verlagen?

En dan:

{Kar = (Kar +(PS * 2))} // PS * 2 ---> 2 blijft 2 en dus niet 2, 4,8,......128


Dat klopt. Kar wordt altijd met 2 vermenigvuldigd, wanneer PS 1 is.
Ik zie nu dat ik (Kar * (PS * 2)) had moeten doen.

Daarbij moet hij nog wel een positie opschuiven, wanneer PS 0 is en daarbij Kar niet verdubbelt.
Maar daar kom ik wel uit.

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 22 gasten