Voor een idee voor gebruik in een studio van het Koninklijk Conservatorium denk ik aan een Arduino-oplossing. In een programma-idee zit ik met de vraag hoe ik in een interruptroutine (tijdgestuurd) variabelen kan gebruiken die in het hoofdprogramma gedefinieerd zijn. De ISR zal ze niet veranderen maar alleen gebruiken.
Iemand een idee?
Defiinieer ze nog voor setup. Dan hebben ze global scope.
Zorg er ook voor dat de variabelen als 'volatile' gedeclareerd zijn, zodat de waardes altijd vanuit hun geheugen adres worden gelezen. Zolang je de waardes niet worden veranderd in de ISR maakt het aantal bytes niet uit. Als je echter in een ISR een variable aanpast die uit meer bytes bestaat (of uit meer bytes dan de architectuur van de MCU) dan moet je eerst de interrupts uitzetten, dan Kopieer je de waarde, en dan de interrupts weer aan om te voorkomen dat gedurende het lezen de waarde verandert.
Hou de ISR kort gebruik geen delay() en schrijf en lees niet van en naar 'Serial' . Je kan de waardes van millis() & micros() wel lezen, maar deze worden terwijl de ISR wordt uitgevoerd, niet aangepast. (dit gebeurd namelijk dmv een ISR routine, en terwijl een ISR wordt uitgevoerd worden er geen andere ISR's uitgevoerd.)
Dank u, ga ik uitzoeken.
Dank U, Ik heb nog meer tips gekregen en ik ga een en ander proberen.
vr.gr
Jo
Gelieve niet te spammen (zelfs als het domein te koop staat). Er van uitgaande dat het per ongeluk is heb ik de spam link verwijderd; een volgende keer zal spam gerapporteerd worden.