#ifndef LIGHTS_H__
#define LIGHTS_H__ 1
-#define TESTING_FW 1
-
#define N_PWMLED_MODES 4
-#define N_BUTTONS 2
-
/* logging.c */
#ifdef USE_LOGGING
void init_log();
/* adc.c */
#define PWMLED_ADC_SHIFT 1 /* 1<<1 measurements per single callback */
-extern volatile uint16_t jiffies;
+extern volatile unsigned char need_battery_adc;
+extern volatile unsigned char need_pwmled_adc;
+extern volatile unsigned char adc_enabled;
void init_adc();
void susp_adc();
-void timer_start_slow_adcs();
+void start_next_adc();
/* pwm.c */
#define PWM_MAX 0xFF
+extern volatile unsigned char pwm_enabled;
void init_pwm();
void susp_pwm();
void pwm_off();
void pwmled_on_off(unsigned char on);
/* pattern.c */
-typedef struct {
- unsigned char mode: 3;
- unsigned char duration: 5;
-} pattern_t;
-
-#define PATTERN_END { 0, 0 }
void init_pattern();
void patterns_next_tick();
-void led_set_pattern(unsigned char led, pattern_t *pattern);
-pattern_t *number_pattern(unsigned char num, unsigned char inv);
+void led_set_pattern(unsigned char led, unsigned char bits_len,
+ unsigned char bits_start, unsigned char *data);
+void led_set_number_pattern(unsigned char led,
+ unsigned char num, unsigned char inv);
void pattern_reload();
/* buttons.c */
void status_led_on_off(unsigned char on);
/* battery.c */
-extern volatile unsigned char battery_critical;
void battery_adc();
void init_battery();
unsigned char battery_gauge();
void short_press();
void brake_on();
void brake_off();
-pattern_t *pwmled_pattern_select();
-pattern_t *status_led_pattern_select();
+void pwmled_pattern_select(unsigned char led);
+void status_led_pattern_select(unsigned char led);
#define ERR_BATTERY 1
#define ERR_PWMLED 2
void set_error(unsigned char err);
+/* wdt.c */
+extern volatile uint16_t jiffies;
+void init_wdt();
+void susp_wdt();
+
/* main.c */
void power_down();