RyujiAndy Inviato 18 Dicembre 2014 Condividi Inviato 18 Dicembre 2014 Specifica un nome Interrupt Service Routine (ISR) per richiamare una funzione quando si verifica un interrupt. per spiegarvi meglio questa funzione prendo come esemplio il classico circuito per accendere un led con un pulsante: con il classico sketch: const int buttonPin = 2; const int ledPin = 13; int buttonState = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop(){ buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } } Ora creiamo lo stesso risultato utilizzando la funzione attachInterrupt(): const int ledPin = 13; int state = LOW; void setup() { pinMode(ledPin, OUTPUT); attachInterrupt(0, changestate, CHANGE); } void loop() { digitalWrite(ledPin, state); } void changestate() { state = !state; } La funzione attachInterrupt non fa altro che richiamare la funzione changestate quando avviene un cambiamento di stato sul pin 2, arduino uno o ethernet dispone di 2 pin dove si può appicare questa funzione invece su arduino 2 è possibile applicarla su qualunque pin, per semplificarvi il lavoro vi elenco quelli da me testati: attachInterrupt(int, funzione, modo) Board int=0 int=1 int=2 int=3 int=4 int=5 Uno/Ethernet pin 2 pin 3 x x x x Mega2560 pin 2 pin 3 pin 21 pin 20 pin 19 pin 18 Leonardo pin 3 pin 2 pin 0 pin 1 pin 7 x Esistono 5 metodi mode per l'utilizzo diverso e sono: HIGH: richiama la funzione quando il pin è allo stato HIGH LOW: richiama la funzione quando lo stato del pin è LOW CHANGE: richiama la funzione ogni volta che il pin cambia valore RISING: richiama la funzione quando il pin passa dallo stato LOW allo stato HIGH FALLING: richiama la funzione quando il pin passa dallo stato HIGH allo stato LOW. Buona programmazione Fonte: RyujiAndy's Blog Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Crea un account o accedi per lasciare un commento
Devi essere un membro per lasciare un commento
Crea un account
Iscriviti per un nuovo account nella nostra community. È facile!
Registra un nuovo accountAccedi
Sei già registrato? Accedi qui.
Accedi Ora