diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/driver/spi_ctrl_c.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/driver/spi_ctrl_c.h index 1e2e0b5..054941b 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/driver/spi_ctrl_c.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/driver/spi_ctrl_c.h @@ -141,23 +141,3 @@ uint8_t spi_write(uint8_t spi_n, uint8_t *rxBuf, uint8_t *txBuf, uint8_t len) return 0; } - -/* utils.c.h */ -/* -#include -#include - -static void ___print_hex(uint8_t* p, int len) -{ - // ___print_hex((uint8_t *)p, sizeof(struct led_series_data_t)); - - int i; - - for (i = 0; i < len; i++) { - printf("0x%x, ", *p++); - } - printf("\n\n"); - - return; -} -*/ diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h index b18c2d1..aea4b05 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h @@ -4,6 +4,6 @@ #define VERSION_DATE_YEAR 23 #define VERSION_DATE_MONTH 6 #define VERSION_DATE_DAY 1 -#define VERSION_DATE_HOUR 13 -#define VERSION_DATE_MINUTE 42 +#define VERSION_DATE_HOUR 15 +#define VERSION_DATE_MINUTE 47 #endif diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/module/led_APA_102.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/module/led_APA_102.h index 0893126..e94833e 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/module/led_APA_102.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/module/led_APA_102.h @@ -78,12 +78,6 @@ struct led_color_t { uint8_t r; }; -struct led_frame_t { - uint8_t bright: 5, - rsvd: 3; - struct led_color_t color; -}; - int led_color_set(enum led_series_nb_e led_nb, enum led_bright_e bright, enum led_color_e color); int led_color_code_set(enum led_series_nb_e led_nb, enum led_bright_e bright, struct led_color_t *color); int led_rainbow(enum led_bright_e bright); diff --git a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/module/led_APA_102_c.h b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/module/led_APA_102_c.h index a4cb10e..3a3fc82 100644 --- a/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/module/led_APA_102_c.h +++ b/simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/module/led_APA_102_c.h @@ -2,9 +2,15 @@ #include #include "module/led_APA_102.h" -#define LED_FRME_FILL_RSVD(_f) (_f)->rsvd = 0x07 // 0x11100000 || bright -#define LED_SERIES_D_START 0x00000000 -#define LED_SERIES_D_END 0xFFFFFFFF +#define LED_FRAME_RSVD 0x07 // 0x11100000 || bright +#define LED_SERIES_D_START 0x00000000 +#define LED_SERIES_D_END 0xFFFFFFFF + +struct led_frame_t { + uint8_t bright: 5, + rsvd: 3; + struct led_color_t color; +}; struct led_series_data_t { uint32_t f_start; @@ -12,8 +18,6 @@ struct led_series_data_t { uint32_t f_end; }; -static struct led_series_data_t led_series_data_g = {0}; - const struct led_color_t led_color_list_g[LED_CLR_MAX] = { // {blue, green, red} {0x00, 0x00, 0x00}, // LED_CLR_BLACK @@ -31,43 +35,10 @@ const struct led_color_t led_color_list_g[LED_CLR_MAX] = { {0x05, 0x35, 0x9E}, // LED_CLR_LOW_BAT (orange) }; -static int __led_single_set(struct led_series_data_t *led_s_d, struct led_frame_t *led_f, enum led_series_nb_e led_nb) +static int __led_complete(struct led_series_data_t *sd) { - struct led_series_data_t *sd = led_s_d; - struct led_frame_t *f = led_f; - enum led_series_nb_e nb = led_nb; - - memcpy(&sd->f_led[nb], f, sizeof(struct led_frame_t)); - - return 0; -} - -static int __led_multiple_set(struct led_series_data_t *led_s_d, struct led_frame_t *led_f) -{ - struct led_series_data_t *sd = led_s_d; - struct led_frame_t *f = led_f; - int i; - - /* - * use __led_single_set() to finish all led; - */ - for (i = LED_NB_1; i < LED_NB_MAX; i++) { - __led_single_set(sd, f, (enum led_series_nb_e)i); - } - - return 0; -} - -static int __led_complete(struct led_series_data_t *led_s_d) -{ - struct led_series_data_t *sd = led_s_d; - struct led_frame_t *f = sd->f_led; - int i; - - for (i = LED_NB_1; i < LED_NB_MAX; i++) { - LED_FRME_FILL_RSVD(f); - f++; - } + for (int i = LED_NB_1; i < LED_NB_MAX; i++) + sd->f_led[i].rsvd = LED_FRAME_RSVD; sd->f_start = LED_SERIES_D_START; sd->f_end = LED_SERIES_D_END; @@ -77,35 +48,29 @@ static int __led_complete(struct led_series_data_t *led_s_d) static int __led_color_set(enum led_series_nb_e led_nb, struct led_frame_t *led_f) { - enum led_series_nb_e nb = led_nb; - struct led_frame_t *f = led_f; + static struct led_series_data_t led_series_data_g = {0}; struct led_series_data_t *sd = &led_series_data_g; - if (f == NULL) - return -1; - /* - * nb - < LED_NB_MAX: fill one led_frame + * led_nb - < LED_NB_MAX: fill one led_frame * == LED_NB_MAX: fill multiple led_frame * * complete: then, fill (start_frame, end_frame and the rsvd of every led_frame) * * finally, write cmd to hw by spi */ - if (nb < LED_NB_MAX) { - __led_single_set(sd, f, nb); - } else if (nb == LED_NB_MAX) { - __led_multiple_set(sd, f); - } else { - return -2; + if (led_nb < LED_NB_MAX) { + memcpy(&sd->f_led[led_nb], led_f, sizeof(struct led_frame_t)); + } else if (led_nb == LED_NB_MAX) { + for (enum led_series_nb_e i = LED_NB_1; i < LED_NB_MAX; i++) { + memcpy(&sd->f_led[i], led_f, sizeof(struct led_frame_t)); + } } - __led_complete(sd); -#define WRITE_TO_HW(_d, _l) spi_write(SPI0, NULL, (uint8_t *)(_d), (_l)) spi_open(SPI0, SPI_RATE_1M, SPI_POL0, SPI_PHA1); //SPI 1M: LED led_cs(1); - WRITE_TO_HW(sd, sizeof(struct led_series_data_t)); + spi_write(SPI0, NULL, (uint8_t *)sd, sizeof(struct led_series_data_t)); led_cs(0); spi_close(SPI0); @@ -114,60 +79,48 @@ static int __led_color_set(enum led_series_nb_e led_nb, struct led_frame_t *led_ int led_color_set(enum led_series_nb_e led_nb, enum led_bright_e bright, enum led_color_e color) { - enum led_series_nb_e nb = led_nb; - enum led_bright_e b = bright; - enum led_color_e c = color; - struct led_frame_t led_f; + struct led_frame_t led_f = {0}; - if (nb > LED_NB_MAX) + if (led_nb > LED_NB_MAX) return -1; - - if (c >= LED_CLR_MAX) + + if (bright > LED_BR_MAX) return -2; - if (b > LED_BR_MAX) + if (color >= LED_CLR_MAX) return -3; - - led_f.bright = b; - led_f.color = led_color_list_g[c]; - __led_color_set(nb, &led_f); + + led_f.bright = bright; + led_f.color = led_color_list_g[color]; + __led_color_set(led_nb, &led_f); return 0; } int led_color_code_set(enum led_series_nb_e led_nb, enum led_bright_e bright, struct led_color_t *color) { - enum led_series_nb_e nb = led_nb; - enum led_bright_e b = bright; - struct led_color_t *c = color; - struct led_frame_t led_f; + struct led_frame_t led_f = {0}; - // valid the input values - if (nb > LED_NB_MAX) + if (led_nb > LED_NB_MAX) return -1; - if (b > LED_BR_MAX) + if (bright > LED_BR_MAX) return -2; - led_f.bright = b; - memcpy(&led_f.color, c, sizeof(struct led_color_t)); - - __led_color_set(nb, &led_f); + led_f.bright = bright; + memcpy(&led_f.color, &color, sizeof(struct led_color_t)); + __led_color_set(led_nb, &led_f); return 0; } int led_rainbow(enum led_bright_e bright) -{ - enum led_bright_e b = bright; - int i; - - if (b > LED_BR_MAX) +{ + if (bright > LED_BR_MAX) return -1; - for(i=0; i