dubbi utilizzo PIND su arduino mega

Ciao a tutti,

sto trasportando uno Schetch usato sin ora su arduino pro mini, su un arduino mega 2560. In questo schetch si utilizza il registro PIND sul pin 2 per la ricezione di impulsi ir che ho sostituito con il pin 19 sul mega, ma a quanto pare non basta.

Vi allego la parte di codice interessata.

Purtroppo non ho mai usato i registri e la manipolazione delle porte e non so come intervenire.

Grazie

#define IRpin_PIN      PIND 
#define IRpin          19  // 2 su arduino pro mini

....

while (IRpin_PIN & (1 << IRpin)) { // while irpin is high - no beam is beam is being received.

    ....
  }
  while (! (IRpin_PIN & _BV(IRpin))) {// while irpin is low, signal being received
    

   ....
  }

Il pin Arduino MEGA '19' corrsiponde al pin fisico del ATmega2560 '45' ovvero a PD2 quindi ... il port da cui leggere è sempre PIND ed il pin ... casualmente corrisponde ed è sempre il 2 :slight_smile:

Guglielmo

P.S.: guarda l'allegato :wink:

atmega2560v3_0.pdf (714 KB)

Grazie per la risposta. Non a caso avevo scelto il pin 19. Vedendo che lo schetch non girava sono andato a guardare a quale pin del mega corrispondeva PD2.

Ho collegato il sensora al pin 19 e nel codice ho sostituito #define IRpin 2 con #define IRpin 19 ma il tutto continua a non funzionare.

Perché probabilmente NON basta SOLO quella modifica, ma sono coinvolte altre cose ... ad esempio potrebbe essere coinvolto qualche interrupt ...

Ma perché invece di andare a modificare la libreria, senza sapere cosa comporta, NON usi uno dei pin validi per la MEGA (visto che la libreria la supporta) ? ? ?

Guglielmo