From: Nicolas D. <Ba...@us...> - 2011-06-11 18:27:20
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 8720b869e55af8181ec8093f7adbb23bbf33bfea (commit) from efa746efba990043a76fe4dfa5726a11fe35dc9b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8720b869e55af8181ec8093f7adbb23bbf33bfea Author: Nicolas Dandrimont <Nic...@cr...> Date: Sat Jun 11 19:26:07 2011 +0200 [Sensor_Actuator] Less annoying beeps ----------------------------------------------------------------------- Changes: diff --git a/elec/boards/Sensor_Actuator/Firmware/sensor_actuator/sensor_actuator/battery_monitoring/battery_monitoring.c b/elec/boards/Sensor_Actuator/Firmware/sensor_actuator/sensor_actuator/battery_monitoring/battery_monitoring.c index de6250a..f82f81f 100644 --- a/elec/boards/Sensor_Actuator/Firmware/sensor_actuator/sensor_actuator/battery_monitoring/battery_monitoring.c +++ b/elec/boards/Sensor_Actuator/Firmware/sensor_actuator/sensor_actuator/battery_monitoring/battery_monitoring.c @@ -52,7 +52,10 @@ int get_battery_monitoring(battery_status *pkt1, battery_status *pkt2) { static void NORETURN battery_monitoring_process(void) { uint8_t battery_charge; - uint8_t buzzer_state = 0; + + int dead_cells = 0; + int dead_cell_counter = 0; + int low_charge_counter = 0; uint8_t ch; uint16_t value = 42; @@ -67,8 +70,10 @@ static void NORETURN battery_monitoring_process(void) { if (battery_state[ch] < 10*LOW_CHARGE_THRES && battery_charge > 1) battery_charge = 1; - else if (battery_state[ch] < 10*ABSENT_CELL_THRES && battery_charge > 0) + else if (battery_state[ch] < 10*ABSENT_CELL_THRES && battery_charge > 0) { + dead_cells++; battery_charge = 0; + } } // Battery 2 @@ -78,8 +83,10 @@ static void NORETURN battery_monitoring_process(void) { if (battery_state[4+ch] < 10*LOW_CHARGE_THRES && battery_charge > 1) battery_charge = 1; - else if (battery_state[4+ch] < 10*ABSENT_CELL_THRES && battery_charge > 0) + else if (battery_state[4+ch] < 10*ABSENT_CELL_THRES && battery_charge > 0) { + dead_cells++; battery_charge = 0; + } } measure_flag = 1; @@ -90,12 +97,23 @@ static void NORETURN battery_monitoring_process(void) { } else if (battery_charge == 1) { // Low charge state - set_buzzer(1); + if (low_charge_counter < 100) { + for (int j = 0; j < 4; j++) { + set_buzzer((j+1) % 2); + timer_delay(50); + } + low_charge_counter++; + } else { + set_buzzer(1); + } } - else if (battery_charge == 0) { + else if (battery_charge == 0 && dead_cell_counter < 2) { // No cell, or dead cell, or bad connection - set_buzzer(buzzer_state); - buzzer_state = (buzzer_state == 0) ? 1 : 0; + for (int j = 0; j < 6; j++) { + set_buzzer((j+1) % 2); + timer_delay(50); + } + dead_cell_counter++; } hooks/post-receive -- krobot |