static unsigned char log_buffer_count;
static unsigned char log_buffer[LOG_BUFFER];
static unsigned char log_state EEMEM;
+/* Upper 4 bits are reset count, lower 4 bits are reset reason from MCUSR */
static unsigned char reboot_count EEMEM = 0;
static unsigned char can_write_eeprom = 0;
unsigned char r_count;
r_count = eeprom_read_byte(&reboot_count);
+ r_count >>= 4;
if (r_count < 5) {
r_count++;
- eeprom_write_byte(&reboot_count, r_count);
+ eeprom_write_byte(&reboot_count,
+ (r_count << 4) | (MCUSR & 0xF));
+ MCUSR = 0;
can_write_eeprom = 1;
} else {
//eeprom_write_byte(&log_state, 0xFF);