X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=bike-lights.git;a=blobdiff_plain;f=logging.c;h=0ade2010ffc61e19b1a52d65b13df2b06fae20a2;hp=5c5beeb30848f4fd4895a10474cd56c93f705d39;hb=7306399bcbd0d7e86899476e4e7d91793825afa6;hpb=c2744894b3254d027de5473970ccddc9a394c442 diff --git a/logging.c b/logging.c index 5c5beeb..0ade201 100644 --- a/logging.c +++ b/logging.c @@ -10,6 +10,7 @@ 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; +/* 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; @@ -24,10 +25,13 @@ void log_init() 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);