Arduino ed interrupt

Salve a tutti. Da prove fatte ho constatato che gli interrupt su input e seriali non funzionano.
La funzione
attachInterrupt(digitalPinToInterrupt(Input1), InputsRead, CHANGE);
ad esempio non va. Sto usando l'ultima versione di Ide.

Risulta anche a voi?

Se seguissi le varie sezioni del forum Italiano avresti la risposta ... :grin:
... leggi da QUI in poi :wink:

Guglielmo

Ciao, ti ringrazio per la rapida risposta, sto leggendo ovunque ma trovo solo esempi che non funzionano, come ad esempio questa guida:
https://www.arduino.cc/en/Reference/AttachInterrupt

Ecco quanto ho scritto:

const int buttonPin = 53;
const int ledPin =  13;

void blink() {
  digitalWrite(ledPin, digitalRead(buttonPin));
}

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP); 
  attachInterrupt(digitalPinToInterrupt(buttonPin), blink, CHANGE);
}

void loop() {
  //blink();
}

Hai per caso una porzione di codice funzionante?

Ma tu che cosa devi fare ? Con che Arduino ? Quali pin stai usando (... solo specifici pin si possono usare con l'AttachInterrupt() ... come chiaramente descritto nel reference delle varie schede) ? Hai letto quello che ti ho linkato sopra ?

Guglielmo

mrdebug:
Ciao, ti ringrazio per la rapida risposta, sto leggendo ovunque ma trovo solo esempi che non funzionano, come ad esempio questa guida:
attachInterrupt() - Arduino Reference

E proprio in quella pagina:

Board Digital Pins Usable For Interrupts
Uno, Nano, Mini, other 328-based 2, 3
Mega, Mega2560, MegaADK 2, 3, 18, 19, 20, 21

mrdebug:
Ciao, ti ringrazio per la rapida risposta, sto leggendo ovunque ma trovo solo esempi che non funzionano, come ad esempio questa guida:

Esempio nel quale è usato il pin 2 e non certo il 53, che su nessuna board Arduino è abbinato ad un interrupt gestibile direttamente dal IDE.

Esiste una libreria che permette di avere interrupt su qualsiasi pin, al link tra i link in basso.
http://playground.arduino.cc/Code/Interrupts
Non ho mai provato questa lib, meglio avere pareri più autorevoli.

Premesso che gli UNICI veri pin collegati direttamente ad un segnale di interrupt sono quelli indicati sopra, è in realtà possibile usare gli interrupt generati dal pinChange su più o meno tutti i pin.

La migliore librerie che gestisce tutti i tipi di interrupt su tutte le schede Arduino e che rende obsoleta quella indicata da Nid, è la EnableInterrupt .

Buono studio :slight_smile:

Guglielmo

Ok, vedo di provarla.

gpb01:
La migliore librerie che gestisce tutti i tipi di interrupt su tutte le schede Arduino e che rende obsoleta quella indicata da Nid, è la EnableInterrupt .

Confermo, è la migliore in assoluto, ben fatta e ben documentata.

La documentazione non l'ho letta comunque ho provato e funziona.
Sarebbe carino che funzionasse anche con le uart. Proverò.

Le UART sono già gestite tramite interrupt in Arduino, sia trasmissione che ricezione.

La libreria funziona tranquillamente ma non riesco ad includerla 2 volte.
Nel main controllo la pressione di un tasto per mezzo di interrupt.
Ho poi un wiegand.c e wiegand.h in cui vorrei includere e rendere autonoma la gestione degli interrupt. Non riesco e non vorrei stravolgere il codice.
C'è in altre parole il modo di avere un main ed un file dile01.c che entrambi in modo autonomo includano la suddetta libreria?