Grazie a tutti per le risposte.
Questo è il codice del mio programma:
#include <EEPROM.h>
int addr = 0;
k=0;
void setup()
{
** DDRD = B11111111; //tutti i pin sono uscite**
}
void loop()
{
** while (k<100)**
{
PORTD = EEPROM.read(addr);
** ++ addr;**
** if (addr > 31)**
{addr = 0;}
}
** }**
Ho utilizzato la EEprom , proprio perché mi serve la velocità.
Le operazioni in lettura avvengono infatti molto rapidamente.
Il byte viene letto dalla cella e portato direttamente sulle porte, che è ESATTAMENTE quello che mi serve.
Accade però che per qualche ciclo l'intera porta si resetti portandosi a livello logico zero.
Vi posto anche il contenuto della mia rom
/*
* EEPROM Write
*
* Stores values read from analog input 0 into the EEPROM.
* These values will stay in the EEPROM when the board is
* turned off and may be retrieved later by another sketch.
*/
#include <EEPROM.h>
void setup()
{
}
int write = 1;
void loop()
{
** if (write == 1)**
** {**
EEPROM.write( 0 , B10000000 );
EEPROM.write( 1 , B10000000 );
EEPROM.write( 2 , B10001010 );
EEPROM.write( 3 , B10001010 );
EEPROM.write( 4 , B10101000 );
EEPROM.write( 5 , B10101000 );
EEPROM.write( 6 , B10100010 );
EEPROM.write( 7 , B10100010 );
EEPROM.write( 8 , B10100010 );
EEPROM.write( 9 , B10100010 );
EEPROM.write( 10 , B10101000 );
EEPROM.write( 11 , B10101000 );
EEPROM.write( 12 , B10001010 );
EEPROM.write( 13 , B10001010 );
EEPROM.write( 14 , B10000000 );
EEPROM.write( 15 , B10000000 );
EEPROM.write( 16 , B00101010 );
EEPROM.write( 17 , B00101010 );
EEPROM.write( 18 , B00100000 );
EEPROM.write( 19 , B00100000 );
EEPROM.write( 20 , B00000010 );
EEPROM.write( 21 , B00000010 );
EEPROM.write( 22 , B00001000 );
EEPROM.write( 23 , B00001000 );
EEPROM.write( 24 , B00001000 );
EEPROM.write( 25 , B00001000 );
EEPROM.write( 26 , B00000010 );
EEPROM.write( 27 , B00000010 );
EEPROM.write( 28 , B00100000 );
EEPROM.write( 29 , B00100000 );
EEPROM.write( 30 , B00101010 );
EEPROM.write( 31 , B00101010 );
** }**
write = 0;
}
La rom è scritta correttamente altrimenti il problema si presenterebbe periodicamente e per un solo ciclo.
Invece mediamente ogni 50-80 letture, l'uscita va zero per qualche ciclo.
Ancora grazie per la cortese disponibilità.