Stap 6: Wij onderbreken dit programma!
Ze lijken ingewikkeld en het meer wordt gemaakt dus door het feit dat er een heleboel info over deze Arduino uitgevoerd onderbreekt die alleen lijkt te functioneren op pin 1 en 2. Ik leerde over een dieper niveau interrupt een AVR-Interrupt die ongeacht het pin-nummer werken kan genoemd. Ze lijkt soort van ingewikkeld omdat ze geschreven in een lage code die net ziet als gobbldygook eruit maar ik vond hier de code in de Adafruit Wave Shield voorbeelden.
Je begint door "met inbegrip van" AVR aan het begin van uw schets
#include < avr/pgmspace.h > //so die wij kunnen programmeren met behulp van AVR code
Vervolgens activeert u de interrupt uitzien...
initialiseren AVR interrupt
TCCR2A = 0;
TCCR2B = 1 << CS22 | 1 << CS21 | 1 << CS20;
Timer2 Overflow Interrupt Enable
TIMSK2 | = 1 << TOIE2;
(Ik weet het, rechts?)
Dan identificeert u een functie geactiveerd door de interrupt
de interrupt die parallel met de lus functie en calle de check_button()-functie loopt
Signal(TIMER2_OVF_vect) {}
check_button();
}
Vervolgens u het programmeren van de functie
}
ongeldig check_button() {}
buttonState = digitalRead(buttonPin);
Als (buttonState == HIGH & & previousButtonState == LOW) {}
buttonPressed = 1; deze globale variabele kunt zien van de lus functie dat de knop is ingedrukt
previousButtonState = hoog; de jonge knop staat ingesteld op de huidige status van de knop
}
if(buttonState == low) {}
buttonPressed = 0; vertellen de lus functie neer dat de knop niet is ingedrukt
previousButtonState = laag; de vorige buttonState ingesteld op de status van de huidige knop
}
}
Nu wanneer de interrupt ziet dat de knop is ingedrukt het verandert de muziek en verlichting op!