16-Mar-2024, 10:43 PM
Ik snap niet helemaal wat je nu ziet. Als je teller op loopt dan moet triggerstate hoog zijn. Weet je zeker dat het signaal op pin2 strak is? Als daar gekke dingen gebeuren (beetje ruis bijvoorbeeld) dan wordt je isr getriggerd.
Ik zou die delay echt vervangen door millis, want je hebt geen idee wat er gebeurd als er tijdens de delay een trigger komt, dat is ook in de documentatie niet echt lekker gedefinieerd.
Uitleg over waarom je geen millis() mag gebruiken in een isr: tijdens een isr zijn andere interrupts disabled, want de isr heeft voorrang op alles. En millis() gebruikt zelf weer een isr , dus dat bijt elkaar.
Dat is het grote nadeel van arduino: het is maar beperkt duidelijk wat de code doet en welke resources ( bv timers) daarvoor gebruikt worden. Als het simpel is komt het goed, wordt het ingewikkelder dan kan je klem lopen. Dit is gelukkig nog simpel.
Ik zou die delay echt vervangen door millis, want je hebt geen idee wat er gebeurd als er tijdens de delay een trigger komt, dat is ook in de documentatie niet echt lekker gedefinieerd.
Uitleg over waarom je geen millis() mag gebruiken in een isr: tijdens een isr zijn andere interrupts disabled, want de isr heeft voorrang op alles. En millis() gebruikt zelf weer een isr , dus dat bijt elkaar.
Dat is het grote nadeel van arduino: het is maar beperkt duidelijk wat de code doet en welke resources ( bv timers) daarvoor gebruikt worden. Als het simpel is komt het goed, wordt het ingewikkelder dan kan je klem lopen. Dit is gelukkig nog simpel.
Fietser en knutselaar en eventjes niet in vorm. Roets, FlevoRacer en diverse (carbon) zelfbouwers voor 1 of 2 personen