]> www.fi.muni.cz Git - tinyboard.git/blobdiff - projects/step-up/lights.h
Experimental step-up driver for chain of 5630 LEDs.
[tinyboard.git] / projects / step-up / lights.h
index 9cbc0c957228bd8ffe9da9e0e97662de82f1c4e6..565deef5d8297fcde3f0e2dc5d6bba55b28653e7 100644 (file)
@@ -1,11 +1,7 @@
 #ifndef LIGHTS_H__
 #define LIGHTS_H__ 1
 
-#define TESTING_FW 1
-
-#define N_PWMLED_MODES 4
-
-#define N_BUTTONS 2
+#define N_PWMLED_MODES 3
 
 /* logging.c */
 #ifdef USE_LOGGING
@@ -24,13 +20,16 @@ void inline log_word(uint16_t word) { }
 
 /* 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();
@@ -43,16 +42,12 @@ void pwmled_set_target(unsigned char mode);
 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 */
@@ -63,7 +58,6 @@ unsigned char buttons_wait_for_release();
 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();
@@ -75,8 +69,16 @@ void long_press();
 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();