Attenzione!! problema individuato (forse)
Inviato: 04/10/2011, 11:39
Credo di aver risolto il problema!
Avevo rilevato anche un mancato funzionamento degli input (pin 84 e 83 corrispondenti a PE6 e PE7).
Visto che anche queste porte si trovavano descritte alla fine dei vettori di mapping in pins_arduino.c ho cominciato a sospettare seriamente di un problema di mapping.
Allora ho pilotato direttamente i registri di ATMEGA2560.
Ovvero con le istruzioni DDRx,PORTx,PINx.
Esempio:
int pe=PINE;
Serial.println(pe,BIN);
E così l'input rilevato seguiva finalmente il valore di ingresso (ovviamente invertito visto il pool-up).
Poi sono passato alla verifica del famoso problema dell'accensione del modem (pin 77 ovvero PJ7) e del led5 (pin 76 ovvero PJ6)
DDRJ=B11000000;
PORTJ=B11000000;
delay(2000);
PORTJ=B00000000;
delay(2000);
E "magicamente" il led si spegne ed accende e il connettore dell'accensione del modulo modem va' alto e basso!!!!!
Adesso io vorrei sapere, come è possibile che ad altri abbia funzionato tutto.
O io ho fatto un casino con il file pins_arduino.c (cosa improbabile, stando ai controlli che sto facendo), oppure nessuno ha ancora provato tutto.
Per favore datemi un feedback! (ne va della mia sanità mentale)
Nel caso (lo chiedo alla redazione tecnica) si trovasse effettivamente la correzione da fare su pins_arduino.c, per favore fatemelo sapere al più presto per evitare di utilizzare i registri del 2560.
Avevo rilevato anche un mancato funzionamento degli input (pin 84 e 83 corrispondenti a PE6 e PE7).
Visto che anche queste porte si trovavano descritte alla fine dei vettori di mapping in pins_arduino.c ho cominciato a sospettare seriamente di un problema di mapping.
Allora ho pilotato direttamente i registri di ATMEGA2560.
Ovvero con le istruzioni DDRx,PORTx,PINx.
Esempio:
int pe=PINE;
Serial.println(pe,BIN);
E così l'input rilevato seguiva finalmente il valore di ingresso (ovviamente invertito visto il pool-up).
Poi sono passato alla verifica del famoso problema dell'accensione del modem (pin 77 ovvero PJ7) e del led5 (pin 76 ovvero PJ6)
DDRJ=B11000000;
PORTJ=B11000000;
delay(2000);
PORTJ=B00000000;
delay(2000);
E "magicamente" il led si spegne ed accende e il connettore dell'accensione del modulo modem va' alto e basso!!!!!
Adesso io vorrei sapere, come è possibile che ad altri abbia funzionato tutto.
O io ho fatto un casino con il file pins_arduino.c (cosa improbabile, stando ai controlli che sto facendo), oppure nessuno ha ancora provato tutto.
Per favore datemi un feedback! (ne va della mia sanità mentale)
Nel caso (lo chiedo alla redazione tecnica) si trovasse effettivamente la correzione da fare su pins_arduino.c, per favore fatemelo sapere al più presto per evitare di utilizzare i registri del 2560.