X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=tinyboard.git;a=blobdiff_plain;f=projects%2Fstep-up%2Flights.h;h=565deef5d8297fcde3f0e2dc5d6bba55b28653e7;hp=f63b6f9094326b7c785cbb6d27800a4b436adac7;hb=HEAD;hpb=e207868d62200cd821bc1a1893913fbafe1efc77 diff --git a/projects/step-up/lights.h b/projects/step-up/lights.h index f63b6f9..565deef 100644 --- a/projects/step-up/lights.h +++ b/projects/step-up/lights.h @@ -1,13 +1,7 @@ #ifndef LIGHTS_H__ #define LIGHTS_H__ 1 -#define TESTING_FW 1 - -#define N_LEDS 7 -#define N_PWMLEDS 2 -#define N_PWMLED_MODES 4 - -#define N_BUTTONS 2 +#define N_PWMLED_MODES 3 /* logging.c */ #ifdef USE_LOGGING @@ -26,83 +20,65 @@ void inline log_word(uint16_t word) { } /* adc.c */ #define PWMLED_ADC_SHIFT 1 /* 1<<1 measurements per single callback */ +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 pwm_set(uint8_t stride); -/* tmr.c */ -extern volatile uint16_t jiffies; -void init_tmr(); -void susp_tmr(); - /* pwmled.c */ void init_pwmled(); void pwmled_adc(uint16_t adcval); -void pwmled_set_mode(unsigned char mode); - -/* gpio.c */ -void init_gpio(); -void susp_gpio(); -void gpio_set(unsigned char n, unsigned char on); - -/* ambient.c */ -#define AMBIENT_ADC_SHIFT 0 /* 1 measurement per callback */ -void init_ambient(); -extern volatile unsigned char ambient_zone; -void ambient_adc(uint16_t adc_val); +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 */ -#define MAX_USER_PARAMS 3 void init_buttons(); void susp_buttons(); void timer_check_buttons(); -void button_adc(uint16_t adcval); -unsigned char get_user_param(unsigned char param); unsigned char buttons_wait_for_release(); -unsigned char buttons_setup_in_progress(); -pattern_t *buttons_setup_status0_pattern_select(); -pattern_t *buttons_setup_status1_pattern_select(); +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(); /* control.c */ -extern pattern_t on1_pattern[]; - void init_control(); +void long_press_start(); +void long_press(); +void short_press(); void brake_on(); void brake_off(); -void toggle_dim_mode(); -void set_panic_mode(); -pattern_t *pwmled0_pattern_select(); -pattern_t *pwmled1_pattern_select(); -pattern_t *pwmled2_pattern_select(); -pattern_t *status_led_pattern_select(); -pattern_t *illumination_led_pattern_select(); -pattern_t *laser_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();