Nattliga utsläpp: Min Arduino Powered Internet aktiverat dröm Generator (6 / 7 steg)
Steg 6: Vi avbryta detta Program!
De verkar komplicerat och det görs mer så av det faktum att det finns en hel del information om dessa Arduino genomföras avbrott att endast tycks fungera på stift 1 och 2. Jag lärde mig om en djupare nivå avbryta kallas AVR avbrott som kan arbeta oberoende av pin-kod. De verkar slags komplicerat eftersom de är skrivna på en låg nivå kod som bara ser ut som gobbldygook men jag hittade koden här i Adafruit våg sköld exemplen.
Du börjar genom att "inkludera" AVR i början av din skiss
#include < avr/pgmspace.h > //so vi kan programmera med hjälp av AVR kod
Då aktivera du avbrott såhär...
initialisera AVR avbrott
TCCR2A = 0;
TCCR2B = 1 << CS22 | 1 << CS21 | 1 << CS20;
Timer2 spill Interrupt Enable
TIMSK2 | = 1 << TOIE2;
(Jag vet, rätt?)
Då identifiera du en funktion som aktiveras av avbrottet
avbrottet som kör parallellt med loop funktion och calle check_button() funktion
SIGNAL(TIMER2_OVF_vect) {
check_button();
}
Sedan programmera du funktionen
}
void check_button() {
buttonState = digitalRead(buttonPin);
om (buttonState == hög & & previousButtonState == låg) {
buttonPressed = 1; använda den globala variabeln för att tala funktionen loop knappen trycks
previousButtonState = hög; ställa in previou knappen till aktuella knappen
}
IF(buttonState == low) {
buttonPressed = 0; berätta loop funkion för att knappen inte är intryckt
previousButtonState = låg; Ange den tidigare buttonState till tillståndet curent knappen
}
}
Nu när avbrott ser att knappen har tryckts det blir musik och belysning!