Go Down

Topic: problema con PORTD (Read 2 times) previous topic - next topic

dr.benway

Salve a tutti.
Sto realizzando il progetto per la mia tesi di Laurea con Arduino.
Ho riscontrato un problema con il controllo PORTD.
Ho cercato sul formu qualche dritta a riguardo, però probabilmente non sono molto bravo ad usare la funzione search e non ho trovato molto. :-(
Quindi ho deciso di aprire questo post.
Mi scuso in anticipo se l'argomento è stato discusso e ridiscusso (credo sia cosa probabile)

Il progetto è il seguente.

Ho scritto sulla  EEPROM  alcuni byte,
Voglio che uesti byte (sono 32) vengano letti ciclicamente e riportati in toto sulle porte digitali.
Ho utilizzato la sintassi  PORTD = EEPROM.read(addr);
Dove  addr è l'indirizzo che si incrementa .

Dove sta il problema?

Il problema è che ogni tot istruzioni (in media una cinquantina), la porta va a zero per un paio di cicli.
Per me è FONDAMENTALE che questo non accada.

E' possibile porvi rimedio?

Grazie.




astrobeed


Dove sta il problema?


Intanto dovresti spiegare cosa intendi esattamente con "un paio di cicli" e poi se non posti tutto lo sketch è impossibile fare una analisi esatta del problema.
Posso solo azzardare una ipotesi, sei sicuro che durante il ciclo non vai a leggere locazioni della EEPROM che valgono 0x00 con il conseguente riporto su PORTD ?

leo72


Salve a tutti.
Sto realizzando il progetto per la mia tesi di Laurea con Arduino.
Ho riscontrato un problema con il controllo PORTD.
Ho cercato sul formu qualche dritta a riguardo, però probabilmente non sono molto bravo ad usare la funzione search e non ho trovato molto. :-(
Quindi ho deciso di aprire questo post.
Mi scuso in anticipo se l'argomento è stato discusso e ridiscusso (credo sia cosa probabile)

Il progetto è il seguente.

Ho scritto sulla  EEPROM  alcuni byte,
Voglio che uesti byte (sono 32) vengano letti ciclicamente e riportati in toto sulle porte digitali.
Ho utilizzato la sintassi  PORTD = EEPROM.read(addr);
Dove  addr è l'indirizzo che si incrementa .

Dove sta il problema?

Il problema è che ogni tot istruzioni (in media una cinquantina), la porta va a zero per un paio di cicli.
Per me è FONDAMENTALE che questo non accada.

E' possibile porvi rimedio?

Grazie.





Ho usato la manipolazione diretta della PORTD per il mio Micrologio senza riscontrare problemi.
Intanto sai che l'accesso alla EEPROM è un'operazione lenta, vero? Non è che hai bisogno di molta velocità?
Perché non carichi in anticipo su 4 variabili il valore di questi 32 bit?
Potresti postare lo sketch che stai usando?
Cosa comandano questi pin?

uwefed

Non sarebbe malvagio anche sapere quale Arduino hai.
Ciao Uwe

Michele Menniti

Anch'io ho usato il PORTD sul mio Programmatore HV, senza alcun particolare problema, quindi decisamente serve vedere lo sketch, oppure bisogna rispolverare l'UweBox che mi pare sia ferma da un bel po' di tempo  :D
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up