Hi all:
Is there anyway to reduce the impact of the eeprom writes?
I have a 24 byte EEPROM write that is hitting me for 240ms...which kills my display strobe.
I'd like to keep the display alive.
The only way is to write it to ram and let an interrupt update the EEPROM. How often is you display strobed? Could you use the display interrupt to update the EEPROM?
I mean that you write the 24 bytes to a ram buffer and set a counter to zero. In your interrupt check the counter and if it's less than 24, write that byte to eeprom and increment the counter. The interrupt can be either the EEPROM interrupt or your display interrupt.
Ok, I did a simplistic variant to Pommie's suggestion. Since the write delay is taking place inside a menu system, it's the display flicker I have to worry about, not other functional areas. So I inserted a call to the strobe routine inside of the wait for EE write completion loop. Thus the strobe gets exclusive mcu attention during the 240ms wait period. From the human mechanical interface point of view, we can live with a quarter second.
How are you multiplexing and refreshing the display? I can't imagine why you would have a problem keeping the display alive if you're using an ISR to refresh the displays...