From: Jan "Yenya" Kasprzak Date: Wed, 29 Aug 2012 10:46:24 +0000 (+0200) Subject: log reset reason X-Git-Tag: gedasymbols-20120913~43 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=7306399bcbd0d7e86899476e4e7d91793825afa6;p=bike-lights.git log reset reason --- 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);