X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=bike-lights.git;a=blobdiff_plain;f=firmware%2Flights.h;h=9d0386878bf9b79ff774a1e6de929ee74f6cb2f2;hp=7e7e2a4d850b18d46e469c8e75668b42f1ca1f32;hb=94524330d5709845fe0bbe8562fd68deedcb818c;hpb=a366ae18debc6e73c4946aa6290ed37c49bb1fc0 diff --git a/firmware/lights.h b/firmware/lights.h index 7e7e2a4..9d03868 100644 --- a/firmware/lights.h +++ b/firmware/lights.h @@ -3,9 +3,13 @@ #define TESTING_FW 1 -#define N_LEDS 7 +#define N_LEDS 4 +#define N_STATUS_LED 1 +#define N_ILLUM_LED 2 +#define N_LASER_LED 4 + #define N_PWMLEDS 3 -#define N_PWMLED_MODES 4 +#define N_PWMLED_MODES 3 #define N_BUTTONS 2 @@ -57,6 +61,14 @@ void susp_tmr(); void init_pwmled(); void pwmled_adc(unsigned char n, uint16_t adcval); void pwmled_set_mode(unsigned char n, unsigned char mode); +void pwmled_set_brightness(uint16_t brightness); +#define PWMLED_BRIGHTNESS(l0_lo, l0_hi, l1, l2_lo, l2_hi) ( \ + (uint16_t)(l0_lo) \ + | ((uint16_t)(l0_hi) << 3) \ + | ((uint16_t)(l1) << 6) \ + | ((uint16_t)(l2_lo) << 9) \ + | ((uint16_t)(l2_hi) << 12) \ + ) /* gpio.c */ void init_gpio(); @@ -86,11 +98,17 @@ typedef struct { #define D_13 6 #define D_21 7 +#define PWM_PAT(L2, L1, L0) ( \ + (((L2) & 3) << 3) | \ + (((L1) & 1) << 2) | \ + (((L0) & 3)) ) + 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 pattern_reload(); +void pwmleds_update_mode(); /* buttons.c */ #define MAX_USER_PARAMS 3 @@ -111,19 +129,19 @@ void init_battery(); unsigned char battery_gauge(); /* control.c */ -extern pattern_t on1_pattern[]; +extern pattern_t on_pattern[]; +extern volatile unsigned char braking; void init_control(); 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 *pwmled_pattern_select(); pattern_t *status_led_pattern_select(); pattern_t *illumination_led_pattern_select(); pattern_t *laser_pattern_select(); +void pwmled_select_brightness(); /* main.c */ void power_down(unsigned char err);