Hi mackrackit,
I've added the WRITE to EEPROM routine. Also @power_up the LCD was blank, so I
added an LCDOUT statement to the Power_up Subroutine which now displays the last stored
EEPROM value.
The whole thing works a treatI can see the merits of being able to write data to a non volatile memory, really,really useful. Thanks for stearing me through this one (as ever) very clever.
Just going to pop around my bench to turn the power back on........Yep still workingCode:Total var word ' Data variable B1 VAR BYTE 'Stored DATA address clear 'Re_set volatile memory to zero (Not EEPROM?) MAIN: gosub Power_up 'On Power_up GOTO READ EEPROM subroutine Start: if PORTA.5 = 0 then count_up: 'If button pressed start counting IF PORTA.5 = 1 THEN Start: 'If button not pressed loop until it is Count_up: 'Button has been pressed let Total = Total + 1 'Add one to value of Total taken from EEPROM LCDOUT $FE,1 'Clear LCD pause 150 LCDOUT $FE,$C0,DEC Total 'Display Total on LCD Write B1, Total.HIGHBYTE ' Write high byte of Total word to EEPROM Write B1+1, Total.LOWBYTE ' Write low byte of Total word to next address goto start: Power_up: 'Power_up subroutine Read B1, Total.HIGHBYTE ' Read high byte Read B1+1, Total.LOWBYTe ' Read low byte LET Total = Total 'Set Total to value set in EEPROM Memory LCDOUT $FE,1 'Clear LCD pause 150 'Give LCD a chance to Power_up LCDOUT $FE,$C0,DEC Total 'At Power_up display Total on LCD from EEPROM 'Memory which has been stored since Power_down return
Dave





Bookmarks