#include "lights.h"
#define LOG_BUFFER 128
-static unsigned char log_state EEMEM;
static unsigned char log_buffer_ee[LOG_BUFFER] EEMEM;
static unsigned char log_buffer_count;
static unsigned char log_buffer[LOG_BUFFER];
+static unsigned char log_state EEMEM;
+static unsigned char reboot_count EEMEM = 0;
+static unsigned char can_write_eeprom = 0;
void log_set_state(unsigned char val)
{
- eeprom_write_byte(&log_state, val);
+ if (can_write_eeprom)
+ eeprom_write_byte(&log_state, val);
}
void log_init()
{
+ unsigned char r_count;
+
+ r_count = eeprom_read_byte(&reboot_count);
+
+ if (r_count < 5) {
+ r_count++;
+ eeprom_write_byte(&reboot_count, r_count);
+ can_write_eeprom = 1;
+ } else {
+ //eeprom_write_byte(&log_state, 0xFF);
+ can_write_eeprom = 0;
+ }
+
log_set_state(1);
log_buffer_count = 0;
}
unsigned char i;
log_buffer_count = LOG_BUFFER;
+
+ if (!can_write_eeprom)
+ return;
+
for (i=0; i < LOG_BUFFER; i++) {
eeprom_write_byte(&log_buffer_ee[i],
log_buffer[i]);