+static unsigned char light_mode;
+static union {
+ unsigned char errors;
+ struct {
+ unsigned char shutdown_in_progress : 1;
+ unsigned char pwmled_error : 1;
+ unsigned char battery_low : 1;
+ };
+} e;
+
+void set_error(unsigned char err)
+{
+ switch(err) {
+ case ERR_BATTERY:
+ e.battery_low = 1;
+ pwmled_set_target(0);
+ pattern_reload();
+ break;
+ case ERR_PWMLED:
+ e.pwmled_error = 1;
+ break;
+ }
+}