we interrupt this program without an interrupt
5 berichten
• Pagina 1 van 1
- Nightmystic
- Berichten: 133
- Geregistreerd: 10 Jan 2016, 16:39
we interrupt this program without an interrupt
Ik gebruik de ClickButton library.
Terwijl de code afgedraaid wordt in de for loop werkt de knop niet.
Een interrupt voor zover ik er van weet en gezien heb, kan altijd onderbreken maar keert daarna naar de plaatst in de code terug die de arduino aan het afdraaien was.
Nu had ik de code van de knop in de for loop geplaatst die ik wil kunnen stoppen om naar een andere case te gaan, maar dat werkt niet.
cpp code
Is er een manier om dit toch voor elkaar te krijgen?
Terwijl de code afgedraaid wordt in de for loop werkt de knop niet.
Een interrupt voor zover ik er van weet en gezien heb, kan altijd onderbreken maar keert daarna naar de plaatst in de code terug die de arduino aan het afdraaien was.
Nu had ik de code van de knop in de for loop geplaatst die ik wil kunnen stoppen om naar een andere case te gaan, maar dat werkt niet.
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
{
knop1.Update(); // check of de knop ingdrukt wordt
if(knop1.clicks == 1)
{
LEDS = LEDS + 1; // Ga 1 programma verder
break;
}
delay(ledSpeed/100); // Snelheid waarmee de led maximaal paars wordt.
ShiftPWM.SetRGB(led,z,z,z);// RGB kleur instellen, nummer van de led, R, G, B
}
}
Is er een manier om dit toch voor elkaar te krijgen?
Advertisement
Re: we interrupt this program without an interrupt
die break geldt uiteraard maar voor 1 loop, en jij hebt er twee, dus hetzelfde stukje nog een keer VOOR de laatste } zou genoeg moeten zijn.
als je dit soort bijdenksels doet, prima, maar realiseer je wel dat je dan snel in problemen komt.
ik doe het altijd even proberen buiten mijn programma in een andere ide (en zelfs op een andere uno,
opdracht:
herschrijf het programma zodat de loop telkens een stapje doet ipv dat je nu dus 15*255 door deze loop moet voordat je iets anders kunt doen.
ofwel gebruik 2 tellers en doe dan in je loop telkens een call naar deze functie.
voor de toekomst zorgen dat de loop heel vaak wordt gedaan. dan kun je dus allerlei processen bijna parallel draaien.
als je dit soort bijdenksels doet, prima, maar realiseer je wel dat je dan snel in problemen komt.
ik doe het altijd even proberen buiten mijn programma in een andere ide (en zelfs op een andere uno,
opdracht:
herschrijf het programma zodat de loop telkens een stapje doet ipv dat je nu dus 15*255 door deze loop moet voordat je iets anders kunt doen.
ofwel gebruik 2 tellers en doe dan in je loop telkens een call naar deze functie.
voor de toekomst zorgen dat de loop heel vaak wordt gedaan. dan kun je dus allerlei processen bijna parallel draaien.
paul deelen
shooter@home.nl
shooter@home.nl
- Nightmystic
- Berichten: 133
- Geregistreerd: 10 Jan 2016, 16:39
Re: we interrupt this program without an interrupt
Is dit wat je bedoeld? Nu kan ik makkelijk op de knop drukken en het programma onderbreken.
cpp code
cpp code
int ledfelheidX = 0;
int ledfelheidY = 0;
int ledUp = 0;
ShiftPWM.SetHSV(ledUp, 240, ledfelheidX, ledfelheidY);
ledfelheidXup();
ledfelheidYup();
if ((ledfelheidX > 255) && (ledfelheidY > 255))
{
volgendeLed();
ledfelheidX = 0;
ledfelheidY = 0;
}
if (ledUp > 15)
{
ledUp = 0;
}
void ledfelheidXup()
{
ledfelheidX = ledfelheidX + 1;
}
void ledfelheidYup()
{
ledfelheidY = ledfelheidY + 1;
}
void volgendeLed()
{
ledUp = ledUp + 1;
}
Re: we interrupt this program without an interrupt
ja zo bedoelde ik het,
echter de testen zou ik in de up zetten dus testen of deze > zo ja dan terug naar 0 anders +1
en deze blijft dus doorlopen, dus een test als je aan het einde ben is nodig, ofwel die eerste if uitbreiden met de ledup
echter de testen zou ik in de up zetten dus testen of deze > zo ja dan terug naar 0 anders +1
en deze blijft dus doorlopen, dus een test als je aan het einde ben is nodig, ofwel die eerste if uitbreiden met de ledup
paul deelen
shooter@home.nl
shooter@home.nl
- Nightmystic
- Berichten: 133
- Geregistreerd: 10 Jan 2016, 16:39
Re: we interrupt this program without an interrupt
Fijn!
Thanks Paul!
Thanks Paul!
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 27 gasten