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
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) ? ? ?