Op en af met een for loop

algemene C code
Berichten: 133
Geregistreerd: 10 Jan 2016, 16:39

Op en af met een for loop

Berichtdoor Nightmystic » 17 Feb 2016, 10:48

Als dit prima werkt:

cpp code
// Fade in all outputs
for(int j=0;j<maxBrightness;j++){
ShiftPWM.SetAll(j);
delay(20);
}
// Fade out all outputs
for(int j=maxBrightness;j>=0;j--){
ShiftPWM.SetAll(j);
delay(20);
}


En dit gaat ook:

cpp code
for(int led = 0; led<16; led++) // Er zijn zestien leds, laat ze oplopend aan gaan
{
for(int z=0;z<255;z++) // Bij 255 is een kleur het meest aanwezig
{
ShiftPWM.SetRGB(led,z,0,z);// RGB kleur instellen, nummer van de led, R, G, B
delay(ledSpeed/100); // Snelheid waarmee de led maximaal paars wordt.
}
}

waarom werkt dit dan niet? En hoe kan ik dat oplossen?

cpp code
for(int led = 16; led>16; led--) // DEZE CODE WERKT NIET
{
for(int z=255;z>0;z--) // Bij 255 is een kleur het meest aanwezig
{
ShiftPWM.SetRGB(led,z,0,z);// RGB kleur instellen, nummer van de led, R, G, B
delay(ledSpeed/100); // Snelheid waarmee de led uitvaagd.
}
}

Advertisement

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

Re: Op en af met een for loop

Berichtdoor nicoverduin » 17 Feb 2016, 12:30

Doe eens een gooi...........
LED is 16, de conditie is NIET groter dan 16... dus...
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 133
Geregistreerd: 10 Jan 2016, 16:39

Re: Op en af met een for loop

Berichtdoor Nightmystic » 17 Feb 2016, 13:49

Klopt, slordige fout maar

led = 16; led >= 0; led--;

werkt ook niet

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

Re: Op en af met een for loop

Berichtdoor nicoverduin » 17 Feb 2016, 21:02

zo als statement zeker niet maar:
cpp code
for (int led = 16; led >= 0; led--){
}

Werkt als een tierelier hoor.
Dat zeg je tenslotte zelf in het 2e deel van het eerste code fragment van je eigen post.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 133
Geregistreerd: 10 Jan 2016, 16:39

Re: Op en af met een for loop

Berichtdoor Nightmystic » 17 Feb 2016, 21:55

Ok dan is het duidelijk dat het zo zou moeten werken en dat het dat niet doet, misschien dat er iets in de library zit dan, wat voorkomt dat het zo kan werken.

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

Re: Op en af met een for loop

Berichtdoor shooter » 17 Feb 2016, 22:54

cpp code
for(int led = 0; led<16; led++) // Er zijn zestien leds, laat ze oplopend aan gaan
{
for(int z=0;z<255;z++) // Bij 255 is een kleur het meest aanwezig
{
ShiftPWM.SetRGB(led,z,0,z);// RGB kleur instellen, nummer van de led, R, G, B
delay(ledSpeed/100); // Snelheid waarmee de led maximaal paars wordt.
}
}
for(int led = 16; led>0; led--) // en nu wel denken wij DEZE CODE WERKT NIET
{
for(int z=255;z>0;z--) // Bij 255 is een kleur het meest aanwezig
{
ShiftPWM.SetRGB(led,z,0,z);// RGB kleur instellen, nummer van de led, R, G, B
delay(ledSpeed/100); // Snelheid waarmee de led uitvaagd.
}
}
paul deelen
shooter@home.nl

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

Re: Op en af met een for loop

Berichtdoor nicoverduin » 17 Feb 2016, 23:09

Nightmystic schreef:Ok dan is het duidelijk dat het zo zou moeten werken en dat het dat niet doet, misschien dat er iets in de library zit dan, wat voorkomt dat het zo kan werken.
En daar zit gelijk de kernfout... denken dat het mogelijk in de library zit...... gewoon debuggen met serial..... Zolang je niet de library kan lezen en begrijpen, zit het altijd in je eigen code.. Totdat je alle mogelijkheden uitgesloten hebt....
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 133
Geregistreerd: 10 Jan 2016, 16:39

Re: Op en af met een for loop

Berichtdoor Nightmystic » 17 Feb 2016, 23:17

De fout zit inderdaad in mijn code.

Programmeren komt heel precies en met de led++ code kom ik er mee weg dat ik van 0 to 16 heb neergezet.
Maar blijkbaar terug niet (led--)

Ik heb 16 leds en de 0 telt als de eerste led, dus led = 15; led > 0; led--; werkte wel.

Ik had Paul zijn code erin gezet, werkte niet, toen schoot het me te binnen dat de 0 als de eerste led zou kunnen tellen.

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

Re: Op en af met een for loop

Berichtdoor nicoverduin » 17 Feb 2016, 23:19

Weer een reden om de hele sketch te posten.....
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

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

Re: Op en af met een for loop

Berichtdoor shooter » 18 Feb 2016, 10:32

dan is het nog niet goed:
de bovenste telt netjes van 0 tot 15
en de onderste van 15 naar 1 dus 0 daar moet staan led >= 0
cpp code
for(int led = 0; led<=15; led++) // Er zijn zestien leds, laat ze oplopend aan gaan
{
for(int z=0;z<255;z++) // Bij 255 is een kleur het meest aanwezig
{
ShiftPWM.SetRGB(led,z,0,z);// RGB kleur instellen, nummer van de led, R, G, B
delay(ledSpeed/100); // Snelheid waarmee de led maximaal paars wordt.
}
}
for(int led = 15; led>=0; led--) {
for(int z=255;z>0;z--) // Bij 255 is een kleur het meest aanwezig
{
ShiftPWM.SetRGB(led,z,0,z);// RGB kleur instellen, nummer van de led, R, G, B
delay(ledSpeed/100); // Snelheid waarmee de led uitvaagd.
}
}

http://www.elcojacobs.com/shiftpwm-function-reference/
de examples werken wel hoor.
en die kun je eenvoudig aanpassen.
er staat bij deze functie nog wel een opmerking over gaps en offset.
? waarom gebruik je z,0,z en geen z,z,z?
paul deelen
shooter@home.nl

Volgende

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 7 gasten