From 808a618712dfcd24cf94bb8ca5a2e92bb60c7f76 Mon Sep 17 00:00:00 2001 From: Roy_01 Date: Thu, 8 Aug 2024 16:19:05 +0800 Subject: [PATCH] update: update a bunch of functions in dev mode --- cpg.c | 2 +- cpg10_dev_mode.c | 596 ++++++++++++++++++++++------------------------- 2 files changed, 282 insertions(+), 316 deletions(-) diff --git a/cpg.c b/cpg.c index e02ace2..47b92fe 100644 --- a/cpg.c +++ b/cpg.c @@ -17,7 +17,7 @@ #define VERSION_DATE_MONTH 8 #define VERSION_DATE_DAY 8 #define VERSION_DATE_HOUR 16 -#define VERSION_DATE_MINUTE 14 +#define VERSION_DATE_MINUTE 19 static void cis_version(uint8_t *ins, uint16_t size) { NRF_LOG_INFO("%s", __FUNCTION__); diff --git a/cpg10_dev_mode.c b/cpg10_dev_mode.c index b81371f..d53705d 100644 --- a/cpg10_dev_mode.c +++ b/cpg10_dev_mode.c @@ -144,7 +144,7 @@ static uint32_t bmd380pins_convert_to_gpio(uint32_t pin) break; default: gpio = UNDEF_GPIO; - NRF_LOG_INFO("UNDEF_GPIO: pin %d can't convert to gpio number", pin); + NRF_LOG_INFO("UNDEF_GPIO: pin number %02d can't convert to gpio number", pin); break; } @@ -158,91 +158,35 @@ static void set_bmd380_pin_signal(uint32_t pin, uint32_t high_low) if (gpio != UNDEF_GPIO) { nrf_gpio_pin_write(gpio, high_low); - NRF_LOG_INFO("set pin %02d (gpio %02d) = %d", pin, gpio, high_low); + NRF_LOG_INFO("set pin number %02d (gpio %02d) = %d", pin, gpio, high_low); } } -#define ELECTRODES_A1HB1L 1 -#define ELECTRODES_A1LB1H 2 -#define ELECTRODES_A2HB2L 3 -#define ELECTRODES_A2LB2H 4 -#define ELECTRODES_A3HB3L 5 -#define ELECTRODES_A3LB3H 6 -#define ELECTRODES_A4HB4L 7 -#define ELECTRODES_A4LB4H 8 -#define ELECTRODE_A1B1_IDLE 9 -#define ELECTRODE_A2B2_IDLE 10 -#define ELECTRODE_A3B3_IDLE 11 -#define ELECTRODE_A4B4_IDLE 12 -#define ELECTRODE_ALL_HIGHZ 13 +#define ELECTRODE_A1B1_IDLE 0x09 +#define ELECTRODE_A2B2_IDLE 0x0A +#define ELECTRODE_A3B3_IDLE 0x0B +#define ELECTRODE_A4B4_IDLE 0x0C +#define ELECTRODE_ALL_HIGHZ 0x0D +#define ELECTRODE_E1P_ENABLE 0x0E +#define ELECTRODE_E1P_DISABLE 0x0F +#define ELECTRODE_E1N_ENABLE 0x10 +#define ELECTRODE_E1N_DISABLE 0x11 +#define ELECTRODE_E2P_ENABLE 0x12 +#define ELECTRODE_E2P_DISABLE 0x13 +#define ELECTRODE_E2N_ENABLE 0x14 +#define ELECTRODE_E2N_DISABLE 0x15 +#define ELECTRODE_E3P_ENABLE 0x16 +#define ELECTRODE_E3P_DISABLE 0x17 +#define ELECTRODE_E3N_ENABLE 0x18 +#define ELECTRODE_E3N_DISABLE 0x19 +#define ELECTRODE_E4P_ENABLE 0x1A +#define ELECTRODE_E4P_DISABLE 0x1B +#define ELECTRODE_E4N_ENABLE 0x1C +#define ELECTRODE_E4N_DISABLE 0x1D static void cpg10_electrodes(uint32_t electrodes_mode) { switch (electrodes_mode) { - case ELECTRODES_A1HB1L: - NRF_LOG_INFO("ELECTRODES_A1HB1L()"); - nrf_gpio_pin_write(VA1H_PIN, 1); - nrf_gpio_pin_write(VB1L_PIN, 1); - nrf_gpio_pin_write(VB1H_PIN, 0); - nrf_gpio_pin_write(VA1L_PIN, 0); - break; - - case ELECTRODES_A1LB1H: - NRF_LOG_INFO("ELECTRODES_A1LB1H()"); - nrf_gpio_pin_write(VB1H_PIN, 1); - nrf_gpio_pin_write(VA1L_PIN, 1); - nrf_gpio_pin_write(VA1H_PIN, 0); - nrf_gpio_pin_write(VB1L_PIN, 0); - break; - - case ELECTRODES_A2HB2L: - NRF_LOG_INFO("ELECTRODES_A2HB2L()"); - nrf_gpio_pin_write(VA2H_PIN, 1); - nrf_gpio_pin_write(VB2L_PIN, 1); - nrf_gpio_pin_write(VB2H_PIN, 0); - nrf_gpio_pin_write(VA2L_PIN, 0); - break; - - case ELECTRODES_A2LB2H: - NRF_LOG_INFO("ELECTRODES_A2LB2H()"); - nrf_gpio_pin_write(VB2H_PIN, 1); - nrf_gpio_pin_write(VA2L_PIN, 1); - nrf_gpio_pin_write(VA2H_PIN, 0); - nrf_gpio_pin_write(VB2L_PIN, 0); - break; - - case ELECTRODES_A3HB3L: - NRF_LOG_INFO("ELECTRODES_A3HB3L()"); - nrf_gpio_pin_write(VA3H_PIN, 1); - nrf_gpio_pin_write(VB3L_PIN, 1); - nrf_gpio_pin_write(VB3H_PIN, 0); - nrf_gpio_pin_write(VA3L_PIN, 0); - break; - - case ELECTRODES_A3LB3H: - NRF_LOG_INFO("ELECTRODES_A3LB3H()"); - nrf_gpio_pin_write(VB3H_PIN, 1); - nrf_gpio_pin_write(VA3L_PIN, 1); - nrf_gpio_pin_write(VA3H_PIN, 0); - nrf_gpio_pin_write(VB3L_PIN, 0); - break; - - case ELECTRODES_A4HB4L: - NRF_LOG_INFO("ELECTRODES_A4HB4L()"); - nrf_gpio_pin_write(VA4H_PIN, 1); - nrf_gpio_pin_write(VB4L_PIN, 1); - nrf_gpio_pin_write(VB4H_PIN, 0); - nrf_gpio_pin_write(VA4L_PIN, 0); - break; - - case ELECTRODES_A4LB4H: - NRF_LOG_INFO("ELECTRODES_A4LB4H()"); - nrf_gpio_pin_write(VB4H_PIN, 1); - nrf_gpio_pin_write(VA4L_PIN, 1); - nrf_gpio_pin_write(VA4H_PIN, 0); - nrf_gpio_pin_write(VB4L_PIN, 0); - break; - case ELECTRODE_A1B1_IDLE: NRF_LOG_INFO("ELECTRODE_A1B1_IDLE()"); nrf_gpio_pin_write(VA1H_PIN, 1); @@ -297,66 +241,106 @@ static void cpg10_electrodes(uint32_t electrodes_mode) nrf_gpio_pin_write(VB4H_PIN, 0); nrf_gpio_pin_write(VA4L_PIN, 0); break; + + case ELECTRODE_E1P_ENABLE: + NRF_LOG_INFO("ELECTRODE_E1P_ENABLE()"); + nrf_gpio_pin_write(VB1H_PIN, 0); + nrf_gpio_pin_write(VB1L_PIN, 1); + break; + + case ELECTRODE_E1P_DISABLE: + NRF_LOG_INFO("ELECTRODE_E1P_DISABLE()"); + nrf_gpio_pin_write(VB1L_PIN, 0); + nrf_gpio_pin_write(VB1H_PIN, 1); + break; + + case ELECTRODE_E1N_ENABLE: + NRF_LOG_INFO("ELECTRODE_E1N_ENABLE()"); + nrf_gpio_pin_write(VA1H_PIN, 0); + nrf_gpio_pin_write(VA1L_PIN, 1); + break; + + case ELECTRODE_E1N_DISABLE: + NRF_LOG_INFO("ELECTRODE_E1N_DISABLE()"); + nrf_gpio_pin_write(VA1L_PIN, 0); + nrf_gpio_pin_write(VA1H_PIN, 1); + break; + + case ELECTRODE_E2P_ENABLE: + NRF_LOG_INFO("ELECTRODE_E2P_ENABLE()"); + nrf_gpio_pin_write(VB2H_PIN, 0); + nrf_gpio_pin_write(VB2L_PIN, 1); + break; + + case ELECTRODE_E2P_DISABLE: + NRF_LOG_INFO("ELECTRODE_E2P_DISABLE()"); + nrf_gpio_pin_write(VB2L_PIN, 0); + nrf_gpio_pin_write(VB2H_PIN, 1); + break; + + case ELECTRODE_E2N_ENABLE: + NRF_LOG_INFO("ELECTRODE_E2N_ENABLE()"); + nrf_gpio_pin_write(VA2H_PIN, 0); + nrf_gpio_pin_write(VA2L_PIN, 1); + break; + + case ELECTRODE_E2N_DISABLE: + NRF_LOG_INFO("ELECTRODE_E2N_DISABLE()"); + nrf_gpio_pin_write(VA2L_PIN, 0); + nrf_gpio_pin_write(VA2H_PIN, 1); + break; + + case ELECTRODE_E3P_ENABLE: + NRF_LOG_INFO("ELECTRODE_E3P_ENABLE()"); + nrf_gpio_pin_write(VB3H_PIN, 0); + nrf_gpio_pin_write(VB3L_PIN, 1); + break; + + case ELECTRODE_E3P_DISABLE: + NRF_LOG_INFO("ELECTRODE_E3P_DISABLE()"); + nrf_gpio_pin_write(VB3L_PIN, 0); + nrf_gpio_pin_write(VB3H_PIN, 1); + break; + + case ELECTRODE_E3N_ENABLE: + NRF_LOG_INFO("ELECTRODE_E3N_ENABLE()"); + nrf_gpio_pin_write(VA3H_PIN, 0); + nrf_gpio_pin_write(VA3L_PIN, 1); + break; + + case ELECTRODE_E3N_DISABLE: + NRF_LOG_INFO("ELECTRODE_E3N_DISABLE()"); + nrf_gpio_pin_write(VA3L_PIN, 0); + nrf_gpio_pin_write(VA3H_PIN, 1); + break; + + case ELECTRODE_E4P_ENABLE: + NRF_LOG_INFO("ELECTRODE_E4P_ENABLE()"); + nrf_gpio_pin_write(VB4H_PIN, 0); + nrf_gpio_pin_write(VB4L_PIN, 1); + break; + + case ELECTRODE_E4P_DISABLE: + NRF_LOG_INFO("ELECTRODE_E4P_DISABLE()"); + nrf_gpio_pin_write(VB4L_PIN, 0); + nrf_gpio_pin_write(VB4H_PIN, 1); + break; + + case ELECTRODE_E4N_ENABLE: + NRF_LOG_INFO("ELECTRODE_E4N_ENABLE()"); + nrf_gpio_pin_write(VA4H_PIN, 0); + nrf_gpio_pin_write(VA4L_PIN, 1); + break; + + case ELECTRODE_E4N_DISABLE: + NRF_LOG_INFO("ELECTRODE_E4N_DISABLE()"); + nrf_gpio_pin_write(VA4L_PIN, 0); + nrf_gpio_pin_write(VA4H_PIN, 1); + break; } } -static void electrodes_1_task(void *pArg) -{ - NRF_LOG_INFO("[test] electrodes_1_task"); - for (;;) - { - cpg10_electrodes(ELECTRODES_A1HB1L); - vTaskDelay(1); - cpg10_electrodes(ELECTRODES_A1LB1H); - vTaskDelay(1); - cpg10_electrodes(ELECTRODE_A1B1_IDLE); - vTaskDelay(200); - } -} - -static void electrodes_2_task(void *pArg) -{ - NRF_LOG_INFO("[test] electrodes_2_task"); - for (;;) - { - cpg10_electrodes(ELECTRODES_A2HB2L); - vTaskDelay(1); - cpg10_electrodes(ELECTRODES_A2LB2H); - vTaskDelay(1); - cpg10_electrodes(ELECTRODE_A2B2_IDLE); - vTaskDelay(200); - } -} - -static void electrodes_3_task(void *pArg) -{ - NRF_LOG_INFO("[test] electrodes_3_task"); - for (;;) - { - cpg10_electrodes(ELECTRODES_A3HB3L); - vTaskDelay(1); - cpg10_electrodes(ELECTRODES_A3LB3H); - vTaskDelay(1); - cpg10_electrodes(ELECTRODE_A3B3_IDLE); - vTaskDelay(200); - } -} - -static void electrodes_4_task(void *pArg) -{ - NRF_LOG_INFO("[test] electrodes_4_task"); - for (;;) - { - cpg10_electrodes(ELECTRODES_A4HB4L); - vTaskDelay(1); - cpg10_electrodes(ELECTRODES_A4LB4H); - vTaskDelay(1); - cpg10_electrodes(ELECTRODE_A4B4_IDLE); - vTaskDelay(200); - } -} - -void setting_cpg_pulse_parameter(uint8_t *ins) +void set_cpg_pulse_parameter(uint8_t *ins) { NRF_LOG_INFO("%s", __FUNCTION__); uint8_t electrodes_num = ins[5]; @@ -439,46 +423,90 @@ void stop_which_electrodes(uint8_t *ins) } } +void set_cpg_pulse_cnt(uint8_t *ins) +{ + NRF_LOG_INFO("%s", __FUNCTION__); + uint8_t electrodes_num = ins[5]; + uint32_t pulse_cnt = (uint32_t)ins[6] << 24 | (uint32_t)ins[7] << 16 | (uint32_t)ins[8] << 8 | (uint32_t)ins[9]; + + if (electrodes_num == 1) + { + dev_mode_pusle_gen[0].pulse_cnt = pulse_cnt; + NRF_LOG_INFO("[1]pulse_cnt = %d cnt", dev_mode_pusle_gen[0].pulse_cnt); + } + else if (electrodes_num == 2) + { + dev_mode_pusle_gen[1].pulse_cnt = pulse_cnt; + NRF_LOG_INFO("[2]pulse_cnt = %d cnt", dev_mode_pusle_gen[1].pulse_cnt); + } +} + /* dev_mode_set_cpg10_electrodes - (1)0x3000FF0001 - -func: ELECTRODES_A1HB1L - (2)0x3000FF0002 - -func: ELECTRODES_A1LB1H + (1) 0x3000FF0009 + - func: ELECTRODE_A1B1_IDLE - (3)0x3000FF0003 - -func: ELECTRODES_A2HB2L + (2) 0x3000FF000A + - func: ELECTRODE_A2B2_IDLE - (4)0x3000FF0004 - -func: ELECTRODES_A2LB2H + (3) 0x3000FF000B + - func: ELECTRODE_A3B3_IDLE - (5)0x3000FF0005 - -func: ELECTRODES_A3HB3L + (4) 0x3000FF000C + - func: ELECTRODE_A4B4_IDLE - (6)0x3000FF0006 - -func: ELECTRODES_A3LB3H + (5) 0x3000FF000D + - func: ELECTRODE_ALL_HIGHZ - (7)0x3000FF0007 - -func: ELECTRODES_A4HB4L + (6) 0x3000FF000E + - func: ELECTRODE_E1P_ENABLE (electrode 1 positive) - (8)0x3000FF0008 - -func: ELECTRODES_A4LB4H + (7) 0x3000FF000F + - func: ELECTRODE_E1P_DISABLE (electrode 1 positive) - (9)0x3000FF0009 - -func: ELECTRODE_A1B1_IDLE + (8) 0x3000FF0010 + - func: ELECTRODE_E1N_ENABLE (electrode 1 negative) - (10)0x3000FF000A - -func: ELECTRODE_A2B2_IDLE + (9) 0x3000FF0011 + - func: ELECTRODE_E1N_DISABLE (electrode 1 negative) - (11)0x3000FF000B - -func: ELECTRODE_A3B3_IDLE + (10) 0x3000FF0012 + - func: ELECTRODE_E2P_ENABLE (electrode 2 positive) - (12)0x3000FF000C - -func: ELECTRODE_A4B4_IDLE + (11) 0x3000FF0013 + - func: ELECTRODE_E2P_DISABLE (electrode 2 positive) + + (12) 0x3000FF0014 + - func: ELECTRODE_E2N_ENABLE (electrode 2 negative) + + (13) 0x3000FF0015 + - func: ELECTRODE_E2N_DISABLE (electrode 2 negative) + + (14) 0x3000FF0016 + - func: ELECTRODE_E3P_ENABLE (electrode 3 positive) + + (15) 0x3000FF0017 + - func: ELECTRODE_E3P_DISABLE (electrode 3 positive) + + (16) 0x3000FF0018 + - func: ELECTRODE_E3N_ENABLE (electrode 3 negative) + + (17) 0x3000FF0019 + - func: ELECTRODE_E3N_DISABLE (electrode 3 negative) + + (18) 0x3000FF001A + - func: ELECTRODE_E4P_ENABLE (electrode 4 positive) + + (19) 0x3000FF001B + - func: ELECTRODE_E4P_DISABLE (electrode 4 positive) + + (20) 0x3000FF001C + - func: ELECTRODE_E4N_ENABLE (electrode 4 negative) + + (21) 0x3000FF001D + - func: ELECTRODE_E4N_DISABLE (electrode 4 negative) - (13)0x3000FF000D - -func: ELECTRODE_ALL_HIGHZ */ void dev_mode_set_cpg10_electrodes(uint8_t *ins) { @@ -496,13 +524,14 @@ void dev_mode_set_cpg10_electrodes(uint8_t *ins) /* dev_mode_set_cpg10_tw1508 - (1)0x3000FF0100 - -func: tw1508_init() - (2)0x3000FF0101aaaabbbb - -func: tw1508_set() - -aaaa: out_0 value 0~1023[LSB] - -bbbb: out_1 value 0~1023[LSB] + (1) 0x3000FF0100 + - func: tw1508_init() out_0 = 0, out_1 = 0 + + (2) 0x3000FF0101aaaabbbb + - func: tw1508_set() + - aaaa: out_0 value (0x0000 to 0x03FF [LSB]) + - bbbb: out_1 value (0x0000 to 0x03FF [LSB]) */ void dev_mode_set_cpg10_tw1508(uint8_t *ins) { @@ -538,55 +567,58 @@ void dev_mode_set_cpg10_tw1508(uint8_t *ins) /* dev_mode_ctrl_cpg10_electrodes_task - (1)0x3000FF0201ss - -func: start/stop electrodes_1_task() - -ss: - 00h: stop electrodes_1_task - 01h: start electrodes_1_task - (2)0x3000FF0202ss - -func: start/stop electrodes_2_task() - -ss: - 00h: stop electrodes_2_task - 01h: start electrodes_2_task - (3)0x3000FF0203ss - -func: start/stop electrodes_3_task() - -ss: - 00h: stop electrodes_3_task - 01h: start electrodes_3_task - (4)0x3000FF0204ss - -func: start/stop electrodes_4_task() - -ss: - 00h: stop electrodes_4_task - 01h: start electrodes_4_task - (5)0x3000FF0205 - -func: start cpg_pulse_default_demo() - (6)0x3000FF0206nnwwwwwwwwffffffff - -func: setting cpg_pulse_parameter - -nn: set which group of electrodes - 01h: electrode1 - 02h: electrode2 - 03h: electrode3 - 04h: electrode4 - -wwwwwwww: pulse_width_us - -ffffffff: freq_hz - (7)0x3000FF0207nn - -func: start which electrodes - -nn: start which electrodes (0x00 to 0xFF) - 0x80 = 0b10000000: electrode1 enable pulse - 0x40 = 0b01000000: electrode2 enable pulse - 0x20 = 0b00100000: electrode3 enable pulse - 0x10 = 0b00010000: electrode4 enable pulse - ...... - 0xF0 = 0b11110000: electrode1~4 enable pulse - (8)0x3000FF0208nn - -func: stop which electrodes - -nn: start which electrodes (0x00 to 0xFF) - 0x80 = 0b10000000: electrode1 stop pulse - 0x40 = 0b01000000: electrode2 stop pulse - 0x20 = 0b00100000: electrode3 stop pulse - 0x10 = 0b00010000: electrode4 stop pulse - ...... - 0xF0 = 0b11110000: electrode1~4 stop pulse + + (1) 0x3000FF0205 + - func: start the cpg_pulse_default_demo() + + - electrode 1: + pulse_width_us: 250 us + freq_hz: 665 Hz + idle: 1000 us + + - electrode 2: + pulse_width_us: 250 us + freq_hz: 665 Hz + idle: 1000 us + + (2) 0x3000FF0206nnwwwwwwwwffffffff + - func: set cpg_pulse parameter values + - nn: set which group of electrodes (0x00 to 0x04) + 0x01: electrode 1 + 0x02: electrode 2 + 0x03: electrode 3 + 0x04: electrode 4 + - wwwwwwww: pulse_width_us (0x00000000 to 0xFFFFFFFF) + - ffffffff: freq_hz (0x00000000 to 0xFFFFFFFF) + + (3) 0x3000FF0207nn + - func: select which electrode's pulse to enable + - nn: which electrodes (0x00 to 0xF0) + 0x80 = 0b10000000: electrode 1 enable pulse + 0x40 = 0b01000000: electrode 2 enable pulse + 0x20 = 0b00100000: electrode 3 enable pulse + 0x10 = 0b00010000: electrode 4 enable pulse + ...... + 0xF0 = 0b11110000: electrode 1~4 enable pulse + + (4) 0x3000FF0208nn + - func: select which electrode's pulse to stop + - nn: which electrodes (0x00 to 0xF0) + 0x80 = 0b10000000: electrode 1 stops pulsing + 0x40 = 0b01000000: electrode 2 stops pulsing + 0x20 = 0b00100000: electrode 3 stops pulsing + 0x10 = 0b00010000: electrode 4 stops pulsing + ...... + 0xF0 = 0b11110000: electrode 1~4 stops pulsing + + (5) 0x3000FF0209nncccccccc + - func: set_cpg_pulse_cnt + - nn: set which group of electrodes (0x00 to 0x04) + 0x01: electrode 1 + 0x02: electrode 2 + 0x03: electrode 3 + 0x04: electrode 4 + - cccccccc: pulse_cnt (0x00000001 to 0xFFFFFFFF) */ void dev_mode_ctrl_cpg10_electrodes_task(uint8_t *ins) { @@ -600,94 +632,17 @@ void dev_mode_ctrl_cpg10_electrodes_task(uint8_t *ins) uint8_t param[]; } *p_ins = (void *)ins; - static TaskHandle_t electrodes1_task_Handle = NULL; - static TaskHandle_t electrodes2_task_Handle = NULL; - static TaskHandle_t electrodes3_task_Handle = NULL; - static TaskHandle_t electrodes4_task_Handle = NULL; - switch (p_ins->electrodes_task_opcode) { - case 0x01: { - uint8_t task_enable = p_ins->param[0]; - - if (task_enable && electrodes1_task_Handle == NULL) - { - NRF_LOG_INFO("[test] start electrodes_1_task task"); - xTaskCreate(electrodes_1_task, "electrodes_1_task", 1024, NULL, 4, &electrodes1_task_Handle); - } - else if (!task_enable && electrodes1_task_Handle != NULL) - { - NRF_LOG_INFO("[test] delete electrodes_1_task task"); - cpg10_electrodes(ELECTRODE_A1B1_IDLE); - vTaskDelete(electrodes1_task_Handle); - electrodes1_task_Handle = NULL; - } - break; - } - - case 0x02: { - uint8_t task_enable = p_ins->param[0]; - - if (task_enable && electrodes2_task_Handle == NULL) - { - NRF_LOG_INFO("[test] start electrodes_2_task task"); - xTaskCreate(electrodes_2_task, "electrodes_2_task", 1024, NULL, 4, &electrodes2_task_Handle); - } - else if (!task_enable && electrodes2_task_Handle != NULL) - { - NRF_LOG_INFO("[test] delete electrodes_2_task task"); - cpg10_electrodes(ELECTRODE_A2B2_IDLE); - vTaskDelete(electrodes2_task_Handle); - electrodes2_task_Handle = NULL; - } - break; - } - - case 0x03: { - uint8_t task_enable = p_ins->param[0]; - - if (task_enable && electrodes3_task_Handle == NULL) - { - NRF_LOG_INFO("[test] start electrodes_3_task task"); - xTaskCreate(electrodes_3_task, "electrodes_3_task", 1024, NULL, 4, &electrodes3_task_Handle); - } - else if (!task_enable && electrodes3_task_Handle != NULL) - { - NRF_LOG_INFO("[test] delete electrodes_3_task task"); - cpg10_electrodes(ELECTRODE_A3B3_IDLE); - vTaskDelete(electrodes3_task_Handle); - electrodes3_task_Handle = NULL; - } - break; - } - - case 0x04: { - uint8_t task_enable = p_ins->param[0]; - - if (task_enable && electrodes4_task_Handle == NULL) - { - NRF_LOG_INFO("[test] start electrodes_4_task task"); - xTaskCreate(electrodes_4_task, "electrodes_4_task", 1024, NULL, 4, &electrodes4_task_Handle); - } - else if (!task_enable && electrodes4_task_Handle != NULL) - { - NRF_LOG_INFO("[test] delete electrodes_4_task task"); - cpg10_electrodes(ELECTRODE_A4B4_IDLE); - vTaskDelete(electrodes4_task_Handle); - electrodes4_task_Handle = NULL; - } - break; - } - case 0x05: { - NRF_LOG_INFO("[test] cpg_pulse_default_demo()"); + NRF_LOG_INFO("cpg_pulse_default_demo()"); extern void cpg_pulse_default_demo(void); cpg_pulse_default_demo(); break; } case 0x06: { - setting_cpg_pulse_parameter(ins); + set_cpg_pulse_parameter(ins); break; } @@ -700,27 +655,38 @@ void dev_mode_ctrl_cpg10_electrodes_task(uint8_t *ins) stop_which_electrodes(ins); break; } + + case 0x09: { + set_cpg_pulse_cnt(ins); + break; + } } } /* dev_mode_gpio_function - (1)0x3000FFA000ppss - -func: set_bmd380_pin_signal - -pp: pin number 06h-3Fh - 06h: P0.22_GPIO - 08h: P0.25_GPIO - ...... - 3Eh: P0.16_GPIO - -ss: signal 00h-01h - 00h: low - 01h: high - (2)0x3000FFA001ss - -func: set BMD380 all pin to high/low, except for HV_EN, SPI, and INPUT pins - -ss: signal 00h-01h - 00h: low - 01h: high + (1) 0x3000FFA000ppss + - func: set_bmd380_pin_signal + - pp: pin number (0x06 to 0x3E) + 0x06: P0.22_GPIO + 0x08: P0.25_GPIO + ...... + 0x3E: P0.16_GPIO + - ss: signal (0x00 or 0x01) + 0x00: low + 0x01: high + + (2) 0x3000FFA001ss + + - func: set all BMD380 PINs to high or low (except for HV_EN, SPI, and input GPIOs) + - pin_number[] = { + 6, 8, 9, 10, 13, 14, 29, 30, 31, 32, 33, 34, 36, 38, 39, + 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 59, 60, 61 + } + - ss: signal (0x00 or 0x01) + 0x00: low + 0x01: high */ void dev_mode_gpio_function(uint8_t *ins) { @@ -744,12 +710,12 @@ void dev_mode_gpio_function(uint8_t *ins) } case 0x01: { - uint32_t high_low = p_ins->param[0]; - uint32_t set_pin[] = { 6, 8, 9, 10, 13, 14, 16, 17, 26, 27, 28, 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 59, 60, 61, 62 }; + uint32_t high_low = p_ins->param[0]; + uint32_t pin_number[] = { 6, 8, 9, 10, 13, 14, 29, 30, 31, 32, 33, 34, 36, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 59, 60, 61 }; - for (int i = 0; i < sizeof(set_pin) / sizeof(set_pin[0]); i++) + for (int i = 0; i < sizeof(pin_number) / sizeof(pin_number[0]); i++) { - set_bmd380_pin_signal(set_pin[i], high_low); + set_bmd380_pin_signal(pin_number[i], high_low); } break; }