Op 17 maart 2020 06:10:54 schreef rew:
Iedereen blijft richtlijnen "het is in het algemeen beter als...." verkondigen als absolute waarheden "je kan nooit....".
Onder omstandigheden kan je best een interrupt lang laten duren.
Rew jij weet nog veel meer van programmeren dan ik. Door je erfvaring weet je beter wat wel en niet kan. Ook moet je dan de hardware en werking van je cpu veel beter kennen en dan kan je ook veel beter inschatten wat je in een interrupt kan doen en of deze überhaupt wel nodig is.
TS is een beginnende programmeur en waarschijnlijk ook nauwelijks bekent met de werking van een CPU dan kan het in mijn ogen geen kwaat om wat ahrde begrenzingen op te stellen voor het gebruik van interrupts en dat later als meer kennis en ervaring er is dat je daar van kan en mag afwijken.
Nou, een controller kan heel veel dingen te gelijk hoor.
Mits het programma goed opgebouwd is.
De meeste microcontrollers kunnen toch echt maar 1 ding tegelijk of je moet er 1 hebben met 2 of meerdere cpu cores.
De cpu in de arduino kan maar 1 instructie tegelijk uitvoeren mar doet dit zo snel dat je wel daardoor meerdere stappen motoren tegelijk kan aansturen. In werkelijkheid zit er dan tussen het aansturen van 2 stappenmoten slecht micro seconde. En dat geeft niets want een stappenmotor op volle snelheid is vergelijken met een microcontroller nog steeds langzaam.
Je moet je programma dan ook zo maken dat er maar 1 ding tegelijkertijd kan worden uitgevoerd. Je programma met gebruik van stappenmotoren het liefst geen delays bevat. I.p.v. delay kan je beter millis() gebruiken is wel een aantal extra regels code per keer maar zorgt ervoor dat je motoren niet schokkerig gaan draaien of je programma traag reageert op drukknoppen.
Zonder naar je programma gekeken te hebben had ik je al eerder advies gegeven op je programma eerst zo kaal mogelijk te maken en dan langzaam dingen toevoegen. Nu kunnen we je natuurlijk wel vertellen wat je moet veranderen maar daarvan leer je werkelijk niets. Je leert van je fouten. Ik maak in mijn programma's ook nog steeds veel fouten en leer dus nog steeds.
Als er fouten in je programma zitten is het altijd handig om eerst na te gaan wat er nu wel goed werkt dat is ook 1 van de redenen dat je met // of /* en */ regels en of hele blokken regels uit kan zetten. Als je eenmaal weer een goed werkende basis hebt dan ga je dus weer een regel aanzetten en kijken of het in die regel fout gaat.