From 7306399bcbd0d7e86899476e4e7d91793825afa6 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Wed, 29 Aug 2012 12:46:24 +0200 Subject: [PATCH] log reset reason --- logging.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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); -- 2.39.3