diff --git a/cpg.c b/cpg.c index 0e5d365..03e2e26 100644 --- a/cpg.c +++ b/cpg.c @@ -15,8 +15,8 @@ #define VERSION_DATE_YEAR 24 #define VERSION_DATE_MONTH 11 #define VERSION_DATE_DAY 1 -#define VERSION_DATE_HOUR 14 -#define VERSION_DATE_MINUTE 24 +#define VERSION_DATE_HOUR 16 +#define VERSION_DATE_MINUTE 48 static void cis_version(uint8_t *ins, uint16_t size) { NRF_LOG_INFO("%s", __FUNCTION__); diff --git a/cpg11_dev_mode.c b/cpg11_dev_mode.c index 1fa748f..ba9d9e2 100644 --- a/cpg11_dev_mode.c +++ b/cpg11_dev_mode.c @@ -116,11 +116,8 @@ double u8_to_double(const uint8_t *ins, uint32_t start_idx) return result; } -#define PULSE_GEN_A_NUMB 2 -#define PULSE_GEN_B_NUMB 2 -static pulse_gen_t p_pulse_genA[PULSE_GEN_A_NUMB]; -static pulse_gen_t p_pulse_genB[PULSE_GEN_B_NUMB]; -static pulse_gen_t pulse_gen[PULSE_GEN_A_NUMB + PULSE_GEN_B_NUMB]; +#define PULSE_GEN_NUMB 4 +static pulse_gen_t pulse_gen[PULSE_GEN_NUMB]; static void set_bmd380_pin_signal(uint8_t pin_number, uint8_t high_low) { @@ -395,24 +392,6 @@ static void electrode_pulse_channel(uint8_t electrode_mode) } } -void reset_pulse(pulse_gen_t *p_pulse_gen) -{ - p_pulse_gen->VAxH = 0xFFFFFFFF; - p_pulse_gen->VAxL = 0xFFFFFFFF; - p_pulse_gen->VBxH = 0xFFFFFFFF; - p_pulse_gen->VBxL = 0xFFFFFFFF; - p_pulse_gen->idle_us = 0; - p_pulse_gen->point_us[0] = 0; - p_pulse_gen->point_us[1] = 0; - p_pulse_gen->point_us[2] = 0; - p_pulse_gen->point_us[3] = 0; - p_pulse_gen->point_us[4] = 0; - p_pulse_gen->point_us[5] = 0; - p_pulse_gen->point_us[6] = 0; - p_pulse_gen->pulse_cnt = 1; - p_pulse_gen->pulse_id = PULSE_ID_NULL; -} - void set_cpg_pulse_parameter(uint8_t *ins) { NRF_LOG_INFO("%s", __FUNCTION__); @@ -422,11 +401,7 @@ void set_cpg_pulse_parameter(uint8_t *ins) uint8_t electrodes4_pulse_gen_sel = (ins[5] & 0b00010000) >> 4; uint32_t pulse_width_us = ins[6] << 24 | ins[7] << 16 | ins[8] << 8 | ins[9]; uint32_t freq_hz = ins[10] << 24 | ins[11] << 16 | ins[12] << 8 | ins[13]; - - reset_pulse(&p_pulse_genA[0]); - reset_pulse(&p_pulse_genA[1]); - reset_pulse(&p_pulse_genB[0]); - reset_pulse(&p_pulse_genB[1]); + uint32_t half_idle_us; if (electrodes1_pulse_gen_sel) { @@ -444,35 +419,17 @@ void set_cpg_pulse_parameter(uint8_t *ins) .point_us[6] = 1, .idle_us = 0, .pulse_cnt = UINT32_MAX, - .pulse_id = PULSE_ID_NULL, + .pulse_id = PULSE_ID_A, }; - NRF_LOG_INFO("[%d]user pulse_width = %u us", 1, pulse_width_us); - NRF_LOG_INFO("[%d]user freq_hz = %u Hz (Period = %dus)", 1, freq_hz, 1 * 1000000 / freq_hz); if (freq_hz == 0) { pulse_gen[0].idle_us = 0; } else { - if (electrodes1_pulse_gen_sel && electrodes2_pulse_gen_sel) - { - pulse_gen[0].idle_us = (1000000 / freq_hz - (pulse_gen[0].point_us[0] + pulse_gen[0].point_us[1] + pulse_gen[0].point_us[2] + - pulse_gen[0].point_us[3] + pulse_gen[0].point_us[4] + pulse_gen[0].point_us[5] + - pulse_gen[0].point_us[6]) * - 2) / - 2; - } + pulse_gen[0].idle_us = 1000000 / freq_hz - (pulse_gen[0].point_us[0] + pulse_gen[0].point_us[1] + pulse_gen[0].point_us[2] + pulse_gen[0].point_us[3] + pulse_gen[0].point_us[4] + pulse_gen[0].point_us[5] + pulse_gen[0].point_us[6]); } - - NRF_LOG_INFO("[%d]a = %u us", 1, pulse_gen[0].point_us[0]); - NRF_LOG_INFO("[%d]b = %u us", 1, pulse_gen[0].point_us[1]); - NRF_LOG_INFO("[%d]c = %u us", 1, pulse_gen[0].point_us[2]); - NRF_LOG_INFO("[%d]d = %u us", 1, pulse_gen[0].point_us[3]); - NRF_LOG_INFO("[%d]e = %u us", 1, pulse_gen[0].point_us[4]); - NRF_LOG_INFO("[%d]f = %u us", 1, pulse_gen[0].point_us[5]); - NRF_LOG_INFO("[%d]g = %u us", 1, pulse_gen[0].point_us[6]); - NRF_LOG_INFO("[%d]idle = %u us", 1, pulse_gen[0].idle_us); } if (electrodes2_pulse_gen_sel) @@ -491,35 +448,24 @@ void set_cpg_pulse_parameter(uint8_t *ins) .point_us[6] = 1, .idle_us = 0, .pulse_cnt = UINT32_MAX, - .pulse_id = PULSE_ID_NULL, + .pulse_id = PULSE_ID_B, }; - NRF_LOG_INFO("[%d]user pulse_width = %u us", 2, pulse_width_us); - NRF_LOG_INFO("[%d]user freq_hz = %u Hz (Period = %dus)", 2, freq_hz, 1 * 1000000 / freq_hz); if (freq_hz == 0) { - pulse_gen[0].idle_us = 0; + pulse_gen[1].idle_us = 0; } else { - if (electrodes1_pulse_gen_sel && electrodes2_pulse_gen_sel) - { - pulse_gen[1].idle_us = (1000000 / freq_hz - (pulse_gen[1].point_us[0] + pulse_gen[1].point_us[1] + pulse_gen[1].point_us[2] + - pulse_gen[1].point_us[3] + pulse_gen[1].point_us[4] + pulse_gen[1].point_us[5] + - pulse_gen[1].point_us[6]) * - 2) / - 2; - } + pulse_gen[1].idle_us = 1000000 / freq_hz - (pulse_gen[1].point_us[0] + pulse_gen[1].point_us[1] + pulse_gen[1].point_us[2] + pulse_gen[1].point_us[3] + pulse_gen[1].point_us[4] + pulse_gen[1].point_us[5] + pulse_gen[1].point_us[6]); } + } - NRF_LOG_INFO("[%d]a = %u us", 2, pulse_gen[1].point_us[0]); - NRF_LOG_INFO("[%d]b = %u us", 2, pulse_gen[1].point_us[1]); - NRF_LOG_INFO("[%d]c = %u us", 2, pulse_gen[1].point_us[2]); - NRF_LOG_INFO("[%d]d = %u us", 2, pulse_gen[1].point_us[3]); - NRF_LOG_INFO("[%d]e = %u us", 2, pulse_gen[1].point_us[4]); - NRF_LOG_INFO("[%d]f = %u us", 2, pulse_gen[1].point_us[5]); - NRF_LOG_INFO("[%d]g = %u us", 2, pulse_gen[1].point_us[6]); - NRF_LOG_INFO("[%d]idle = %u us", 2, pulse_gen[1].idle_us); + if (electrodes1_pulse_gen_sel && electrodes2_pulse_gen_sel && freq_hz != 0) + { + half_idle_us = (1000000 / freq_hz - (pulse_gen[0].point_us[0] + pulse_gen[0].point_us[1] + pulse_gen[0].point_us[2] + pulse_gen[0].point_us[3] + pulse_gen[0].point_us[4] + pulse_gen[0].point_us[5] + pulse_gen[0].point_us[6]) - (pulse_gen[1].point_us[0] + pulse_gen[1].point_us[1] + pulse_gen[1].point_us[2] + pulse_gen[1].point_us[3] + pulse_gen[1].point_us[4] + pulse_gen[1].point_us[5] + pulse_gen[1].point_us[6])) / 2; + pulse_gen[0].idle_us = half_idle_us; + pulse_gen[1].idle_us = half_idle_us; } if (electrodes3_pulse_gen_sel) @@ -538,35 +484,17 @@ void set_cpg_pulse_parameter(uint8_t *ins) .point_us[6] = 1, .idle_us = 0, .pulse_cnt = UINT32_MAX, - .pulse_id = PULSE_ID_NULL, + .pulse_id = PULSE_ID_C, }; - NRF_LOG_INFO("[%d]user pulse_width = %u us", 3, pulse_width_us); - NRF_LOG_INFO("[%d]user freq_hz = %u Hz (Period = %dus)", 3, freq_hz, 1 * 1000000 / freq_hz); if (freq_hz == 0) { - pulse_gen[0].idle_us = 0; + pulse_gen[2].idle_us = 0; } else { - if (electrodes3_pulse_gen_sel && electrodes4_pulse_gen_sel) - { - pulse_gen[2].idle_us = (1000000 / freq_hz - (pulse_gen[2].point_us[0] + pulse_gen[2].point_us[1] + pulse_gen[2].point_us[2] + - pulse_gen[2].point_us[3] + pulse_gen[2].point_us[4] + pulse_gen[2].point_us[5] + - pulse_gen[2].point_us[6]) * - 2) / - 2; - } + pulse_gen[2].idle_us = 1000000 / freq_hz - (pulse_gen[2].point_us[0] + pulse_gen[2].point_us[1] + pulse_gen[2].point_us[2] + pulse_gen[2].point_us[3] + pulse_gen[2].point_us[4] + pulse_gen[2].point_us[5] + pulse_gen[2].point_us[6]); } - - NRF_LOG_INFO("[%d]a = %u us", 3, pulse_gen[2].point_us[0]); - NRF_LOG_INFO("[%d]b = %u us", 3, pulse_gen[2].point_us[1]); - NRF_LOG_INFO("[%d]c = %u us", 3, pulse_gen[2].point_us[2]); - NRF_LOG_INFO("[%d]d = %u us", 3, pulse_gen[2].point_us[3]); - NRF_LOG_INFO("[%d]e = %u us", 3, pulse_gen[2].point_us[4]); - NRF_LOG_INFO("[%d]f = %u us", 3, pulse_gen[2].point_us[5]); - NRF_LOG_INFO("[%d]g = %u us", 3, pulse_gen[2].point_us[6]); - NRF_LOG_INFO("[%d]idle = %u us", 3, pulse_gen[2].idle_us); } if (electrodes4_pulse_gen_sel) @@ -585,35 +513,48 @@ void set_cpg_pulse_parameter(uint8_t *ins) .point_us[6] = 1, .idle_us = 0, .pulse_cnt = UINT32_MAX, - .pulse_id = PULSE_ID_NULL, + .pulse_id = PULSE_ID_D, }; - NRF_LOG_INFO("[%d]user pulse_width = %u us", 4, pulse_width_us); - NRF_LOG_INFO("[%d]user freq_hz = %u Hz (Period = %dus)", 4, freq_hz, 1 * 1000000 / freq_hz); if (freq_hz == 0) { - pulse_gen[0].idle_us = 0; + pulse_gen[3].idle_us = 0; } else { - if (electrodes3_pulse_gen_sel && electrodes4_pulse_gen_sel) - { - pulse_gen[3].idle_us = (1000000 / freq_hz - (pulse_gen[3].point_us[0] + pulse_gen[3].point_us[1] + pulse_gen[3].point_us[2] + - pulse_gen[3].point_us[3] + pulse_gen[3].point_us[4] + pulse_gen[3].point_us[5] + - pulse_gen[3].point_us[6]) * - 2) / - 2; - } + pulse_gen[3].idle_us = 1000000 / freq_hz - (pulse_gen[3].point_us[0] + pulse_gen[3].point_us[1] + pulse_gen[3].point_us[2] + pulse_gen[3].point_us[3] + pulse_gen[3].point_us[4] + pulse_gen[3].point_us[5] + pulse_gen[3].point_us[6]); } + } - NRF_LOG_INFO("[%d]a = %u us", 4, pulse_gen[3].point_us[0]); - NRF_LOG_INFO("[%d]b = %u us", 4, pulse_gen[3].point_us[1]); - NRF_LOG_INFO("[%d]c = %u us", 4, pulse_gen[3].point_us[2]); - NRF_LOG_INFO("[%d]d = %u us", 4, pulse_gen[3].point_us[3]); - NRF_LOG_INFO("[%d]e = %u us", 4, pulse_gen[3].point_us[4]); - NRF_LOG_INFO("[%d]f = %u us", 4, pulse_gen[3].point_us[5]); - NRF_LOG_INFO("[%d]g = %u us", 4, pulse_gen[3].point_us[6]); - NRF_LOG_INFO("[%d]idle = %u us", 4, pulse_gen[3].idle_us); + if (electrodes3_pulse_gen_sel && electrodes4_pulse_gen_sel && freq_hz != 0) + { + half_idle_us = (1000000 / freq_hz - (pulse_gen[2].point_us[0] + pulse_gen[2].point_us[1] + pulse_gen[2].point_us[2] + pulse_gen[2].point_us[3] + pulse_gen[2].point_us[4] + pulse_gen[2].point_us[5] + pulse_gen[2].point_us[6]) - (pulse_gen[3].point_us[0] + pulse_gen[3].point_us[1] + pulse_gen[3].point_us[2] + pulse_gen[3].point_us[3] + pulse_gen[3].point_us[4] + pulse_gen[3].point_us[5] + pulse_gen[3].point_us[6])) / 2; + pulse_gen[2].idle_us = half_idle_us; + pulse_gen[3].idle_us = half_idle_us; + } + + for (int i = 0; i < PULSE_GEN_NUMB; i++) + { + if ((i == 0 && electrodes1_pulse_gen_sel) || (i == 1 && electrodes2_pulse_gen_sel) || (i == 2 && electrodes3_pulse_gen_sel) || (i == 3 && electrodes4_pulse_gen_sel)) + { + NRF_LOG_INFO("set electrodes%d_pulse_gen", i + 1); + NRF_LOG_INFO("[%d]user pulse_width = %u us", 1, pulse_width_us); + NRF_LOG_INFO("[%d]user freq_hz = %u Hz (Period = %dus)", 1, freq_hz, 1 * 1000000 / freq_hz); + NRF_LOG_INFO("pulse_gen[%d]VAxH = %d", i, pulse_gen[i].VAxH); + NRF_LOG_INFO("pulse_gen[%d]VAxL = %d", i, pulse_gen[i].VAxL); + NRF_LOG_INFO("pulse_gen[%d]VBxH = %d", i, pulse_gen[i].VBxH); + NRF_LOG_INFO("pulse_gen[%d]VBxL = %d", i, pulse_gen[i].VBxL); + NRF_LOG_INFO("pulse_gen[%d]a = %u us", i, pulse_gen[i].point_us[0]); + NRF_LOG_INFO("pulse_gen[%d]b = %u us", i, pulse_gen[i].point_us[1]); + NRF_LOG_INFO("pulse_gen[%d]c = %u us", i, pulse_gen[i].point_us[2]); + NRF_LOG_INFO("pulse_gen[%d]d = %u us", i, pulse_gen[i].point_us[3]); + NRF_LOG_INFO("pulse_gen[%d]e = %u us", i, pulse_gen[i].point_us[4]); + NRF_LOG_INFO("pulse_gen[%d]f = %u us", i, pulse_gen[i].point_us[5]); + NRF_LOG_INFO("pulse_gen[%d]g = %u us", i, pulse_gen[i].point_us[6]); + NRF_LOG_INFO("pulse_gen[%d]idle = %u us", i, pulse_gen[i].idle_us); + NRF_LOG_INFO("pulse_gen[%d]pulse_cnt = 0x%08X cnt", i, pulse_gen[i].pulse_cnt); + NRF_LOG_INFO("pulse_gen[%d]pulse_id = %u", i, pulse_gen[i].pulse_id); + } } NRF_LOG_INFO("set ok......"); @@ -622,134 +563,96 @@ void set_cpg_pulse_parameter(uint8_t *ins) static void start_which_electrodes(uint8_t *ins) { NRF_LOG_INFO("%s", __FUNCTION__); - uint8_t electrodes1_pulse_gen_en = (ins[5] & 0b10000000) >> 7; - uint8_t electrodes2_pulse_gen_en = (ins[5] & 0b01000000) >> 6; - uint8_t electrodes3_pulse_gen_en = (ins[5] & 0b00100000) >> 5; - uint8_t electrodes4_pulse_gen_en = (ins[5] & 0b00010000) >> 4; - uint32_t inum = 0; + uint8_t e1_en = (ins[5] & 0b10000000) >> 7; + uint8_t e2_en = (ins[5] & 0b01000000) >> 6; + uint8_t e3_en = (ins[5] & 0b00100000) >> 5; + uint8_t e4_en = (ins[5] & 0b00010000) >> 4; + uint32_t inum = 0; - inum = 0; - if (electrodes1_pulse_gen_en) + if (e1_en) { - p_pulse_genA[inum] = pulse_gen[0]; - p_pulse_genA[inum].pulse_id = PULSE_ID_A; - nrf_gpio_pin_clear(p_pulse_genA[inum].VBxL); - nrf_gpio_pin_clear(p_pulse_genA[inum].VBxH); - nrf_gpio_pin_clear(p_pulse_genA[inum].VAxL); - nrf_gpio_pin_clear(p_pulse_genA[inum].VAxH); - NRF_LOG_INFO("start electrodes1_pulse_gen"); - } - else - { - p_pulse_genA[inum].VBxL = 0xFFFFFFFF; - p_pulse_genA[inum].VBxH = 0xFFFFFFFF; - p_pulse_genA[inum].VAxL = 0xFFFFFFFF; - p_pulse_genA[inum].VAxH = 0xFFFFFFFF; + nrf_gpio_pin_clear(pulse_gen[0].VBxL); + nrf_gpio_pin_clear(pulse_gen[0].VBxH); + nrf_gpio_pin_clear(pulse_gen[0].VAxL); + nrf_gpio_pin_clear(pulse_gen[0].VAxH); } - inum = 1; - if (electrodes2_pulse_gen_en) + if (e2_en) { - p_pulse_genA[inum] = pulse_gen[1]; - p_pulse_genA[inum].pulse_id = PULSE_ID_B; - nrf_gpio_pin_clear(p_pulse_genA[inum].VBxL); - nrf_gpio_pin_clear(p_pulse_genA[inum].VBxH); - nrf_gpio_pin_clear(p_pulse_genA[inum].VAxL); - nrf_gpio_pin_clear(p_pulse_genA[inum].VAxH); - NRF_LOG_INFO("start electrodes2_pulse_gen"); - } - else - { - p_pulse_genA[inum].VBxL = 0xFFFFFFFF; - p_pulse_genA[inum].VBxH = 0xFFFFFFFF; - p_pulse_genA[inum].VAxL = 0xFFFFFFFF; - p_pulse_genA[inum].VAxH = 0xFFFFFFFF; + nrf_gpio_pin_clear(pulse_gen[1].VBxL); + nrf_gpio_pin_clear(pulse_gen[1].VBxH); + nrf_gpio_pin_clear(pulse_gen[1].VAxL); + nrf_gpio_pin_clear(pulse_gen[1].VAxH); } - if (electrodes1_pulse_gen_en || electrodes2_pulse_gen_en) + if (e3_en) { - cpg11_pulse_init(0, &p_pulse_genA[0], 2); - cpg11_pulse_start(0, &p_pulse_genA[0]); + nrf_gpio_pin_clear(pulse_gen[2].VBxL); + nrf_gpio_pin_clear(pulse_gen[2].VBxH); + nrf_gpio_pin_clear(pulse_gen[2].VAxL); + nrf_gpio_pin_clear(pulse_gen[2].VAxH); } - inum = 0; - if (electrodes3_pulse_gen_en) + if (e4_en) { - p_pulse_genB[inum] = pulse_gen[2]; - p_pulse_genB[inum].pulse_id = PULSE_ID_C; - nrf_gpio_pin_clear(p_pulse_genB[inum].VBxL); - nrf_gpio_pin_clear(p_pulse_genB[inum].VBxH); - nrf_gpio_pin_clear(p_pulse_genB[inum].VAxL); - nrf_gpio_pin_clear(p_pulse_genB[inum].VAxH); - NRF_LOG_INFO("start electrodes3_pulse_gen"); - } - else - { - p_pulse_genB[inum].VBxL = 0xFFFFFFFF; - p_pulse_genB[inum].VBxH = 0xFFFFFFFF; - p_pulse_genB[inum].VAxL = 0xFFFFFFFF; - p_pulse_genB[inum].VAxH = 0xFFFFFFFF; + nrf_gpio_pin_clear(pulse_gen[3].VBxL); + nrf_gpio_pin_clear(pulse_gen[3].VBxH); + nrf_gpio_pin_clear(pulse_gen[3].VAxL); + nrf_gpio_pin_clear(pulse_gen[3].VAxH); } - inum = 1; - if (electrodes4_pulse_gen_en) + if (e1_en && e2_en) { - p_pulse_genB[inum] = pulse_gen[3]; - p_pulse_genB[inum].pulse_id = PULSE_ID_D; - nrf_gpio_pin_clear(p_pulse_genB[inum].VBxL); - nrf_gpio_pin_clear(p_pulse_genB[inum].VBxH); - nrf_gpio_pin_clear(p_pulse_genB[inum].VAxL); - nrf_gpio_pin_clear(p_pulse_genB[inum].VAxH); - NRF_LOG_INFO("start electrodes4_pulse_gen"); + cpg11_pulse_init(0, &pulse_gen[0], 2); + cpg11_pulse_start(0, &pulse_gen[0]); } - else + else if (e1_en && e2_en == 0) { - p_pulse_genB[inum].VBxL = 0xFFFFFFFF; - p_pulse_genB[inum].VBxH = 0xFFFFFFFF; - p_pulse_genB[inum].VAxL = 0xFFFFFFFF; - p_pulse_genB[inum].VAxH = 0xFFFFFFFF; + cpg11_pulse_init(0, &pulse_gen[0], 1); + cpg11_pulse_start(0, &pulse_gen[0]); + } + else if (e2_en && e1_en == 0) + { + cpg11_pulse_init(0, &pulse_gen[1], 1); + cpg11_pulse_start(0, &pulse_gen[1]); } - if (electrodes3_pulse_gen_en || electrodes4_pulse_gen_en) + if (e3_en && e4_en) { - cpg11_pulse_init(1, &p_pulse_genB[0], 2); - cpg11_pulse_start(1, &p_pulse_genB[0]); + cpg11_pulse_init(1, &pulse_gen[2], 2); + cpg11_pulse_start(1, &pulse_gen[2]); + } + else if (e3_en && e4_en == 0) + { + cpg11_pulse_init(1, &pulse_gen[2], 1); + cpg11_pulse_start(1, &pulse_gen[2]); + } + else if (e4_en && e3_en == 0) + { + cpg11_pulse_init(1, &pulse_gen[3], 1); + cpg11_pulse_start(1, &pulse_gen[3]); } - for (int i = 0; i < 2; i++) + for (int i = 0; i < PULSE_GEN_NUMB; i++) { - NRF_LOG_INFO("p_pulse_genA[%d]VAxH = %d", i, p_pulse_genA[i].VAxH); - NRF_LOG_INFO("p_pulse_genA[%d]VAxL = %d", i, p_pulse_genA[i].VAxL); - NRF_LOG_INFO("p_pulse_genA[%d]VBxH = %d", i, p_pulse_genA[i].VBxH); - NRF_LOG_INFO("p_pulse_genA[%d]VBxL = %d", i, p_pulse_genA[i].VBxL); - NRF_LOG_INFO("p_pulse_genA[%d]a = %u us", i, p_pulse_genA[i].point_us[0]); - NRF_LOG_INFO("p_pulse_genA[%d]b = %u us", i, p_pulse_genA[i].point_us[1]); - NRF_LOG_INFO("p_pulse_genA[%d]c = %u us", i, p_pulse_genA[i].point_us[2]); - NRF_LOG_INFO("p_pulse_genA[%d]d = %u us", i, p_pulse_genA[i].point_us[3]); - NRF_LOG_INFO("p_pulse_genA[%d]e = %u us", i, p_pulse_genA[i].point_us[4]); - NRF_LOG_INFO("p_pulse_genA[%d]f = %u us", i, p_pulse_genA[i].point_us[5]); - NRF_LOG_INFO("p_pulse_genA[%d]g = %u us", i, p_pulse_genA[i].point_us[6]); - NRF_LOG_INFO("p_pulse_genA[%d]idle = %u us", i, p_pulse_genA[i].idle_us); - NRF_LOG_INFO("p_pulse_genA[%d]pulse_cnt = 0x%08X cnt", i, p_pulse_genA[i].pulse_cnt); - NRF_LOG_INFO("p_pulse_genA[%d]pulse_id = %u", i, p_pulse_genA[i].pulse_id); - } - - for (int i = 0; i < 2; i++) - { - NRF_LOG_INFO("p_pulse_genB[%d]VAxH = %d", i, p_pulse_genB[i].VAxH); - NRF_LOG_INFO("p_pulse_genB[%d]VAxL = %d", i, p_pulse_genB[i].VAxL); - NRF_LOG_INFO("p_pulse_genB[%d]VBxH = %d", i, p_pulse_genB[i].VBxH); - NRF_LOG_INFO("p_pulse_genB[%d]VBxL = %d", i, p_pulse_genB[i].VBxL); - NRF_LOG_INFO("p_pulse_genB[%d]a = %u us", i, p_pulse_genB[i].point_us[0]); - NRF_LOG_INFO("p_pulse_genB[%d]b = %u us", i, p_pulse_genB[i].point_us[1]); - NRF_LOG_INFO("p_pulse_genB[%d]c = %u us", i, p_pulse_genB[i].point_us[2]); - NRF_LOG_INFO("p_pulse_genB[%d]d = %u us", i, p_pulse_genB[i].point_us[3]); - NRF_LOG_INFO("p_pulse_genB[%d]e = %u us", i, p_pulse_genB[i].point_us[4]); - NRF_LOG_INFO("p_pulse_genB[%d]f = %u us", i, p_pulse_genB[i].point_us[5]); - NRF_LOG_INFO("p_pulse_genB[%d]g = %u us", i, p_pulse_genB[i].point_us[6]); - NRF_LOG_INFO("p_pulse_genB[%d]idle = %u us", i, p_pulse_genB[i].idle_us); - NRF_LOG_INFO("p_pulse_genB[%d]pulse_cnt = 0x%08X cnt", i, p_pulse_genB[i].pulse_cnt); - NRF_LOG_INFO("p_pulse_genB[%d]pulse_id = %u", i, p_pulse_genB[i].pulse_id); + if ((i == 0 && e1_en) || (i == 1 && e2_en) || (i == 2 && e3_en) || (i == 3 && e4_en)) + { + NRF_LOG_INFO("start electrodes%d_pulse_gen", i + 1); + NRF_LOG_INFO("pulse_gen[%d]VAxH = %d", i, pulse_gen[i].VAxH); + NRF_LOG_INFO("pulse_gen[%d]VAxL = %d", i, pulse_gen[i].VAxL); + NRF_LOG_INFO("pulse_gen[%d]VBxH = %d", i, pulse_gen[i].VBxH); + NRF_LOG_INFO("pulse_gen[%d]VBxL = %d", i, pulse_gen[i].VBxL); + NRF_LOG_INFO("pulse_gen[%d]a = %u us", i, pulse_gen[i].point_us[0]); + NRF_LOG_INFO("pulse_gen[%d]b = %u us", i, pulse_gen[i].point_us[1]); + NRF_LOG_INFO("pulse_gen[%d]c = %u us", i, pulse_gen[i].point_us[2]); + NRF_LOG_INFO("pulse_gen[%d]d = %u us", i, pulse_gen[i].point_us[3]); + NRF_LOG_INFO("pulse_gen[%d]e = %u us", i, pulse_gen[i].point_us[4]); + NRF_LOG_INFO("pulse_gen[%d]f = %u us", i, pulse_gen[i].point_us[5]); + NRF_LOG_INFO("pulse_gen[%d]g = %u us", i, pulse_gen[i].point_us[6]); + NRF_LOG_INFO("pulse_gen[%d]idle = %u us", i, pulse_gen[i].idle_us); + NRF_LOG_INFO("pulse_gen[%d]pulse_cnt = 0x%08X cnt", i, pulse_gen[i].pulse_cnt); + NRF_LOG_INFO("pulse_gen[%d]pulse_id = %u", i, pulse_gen[i].pulse_id); + } } } @@ -766,8 +669,6 @@ static void stop_which_electrodes(uint8_t *ins) cpg11_pulse_stop(0); NRF_LOG_INFO("stop electrodes1_pulse_gen"); NRF_LOG_INFO("stop electrodes2_pulse_gen"); - p_pulse_genA[0].pulse_id = PULSE_ID_NULL; - p_pulse_genA[1].pulse_id = PULSE_ID_NULL; } if (electrodes3_pulse_gen_dis || electrodes4_pulse_gen_dis) @@ -775,17 +676,6 @@ static void stop_which_electrodes(uint8_t *ins) cpg11_pulse_stop(1); NRF_LOG_INFO("stop electrodes3_pulse_gen"); NRF_LOG_INFO("stop electrodes4_pulse_gen"); - p_pulse_genB[0].pulse_id = PULSE_ID_NULL; - p_pulse_genB[1].pulse_id = PULSE_ID_NULL; - } - - for (int i = 0; i < 2; i++) - { - NRF_LOG_INFO("pulse_genA[%d]pulse_id: %d", i, p_pulse_genA[i].pulse_id); - } - for (int i = 0; i < 2; i++) - { - NRF_LOG_INFO("pulse_genB[%d]pulse_id: %d", i, p_pulse_genB[i].pulse_id); } NRF_LOG_INFO("\n\n") @@ -801,25 +691,25 @@ static void suspend_which_electrodes(uint8_t *ins) if (electrodes1_pulse_gen_dis) { - cpg11_pulse_suspend_by_pulse_id(p_pulse_genA[0].pulse_id); + cpg11_pulse_suspend_by_pulse_id(pulse_gen[0].pulse_id); NRF_LOG_INFO("suspend electrodes1_pulse_gen"); } if (electrodes2_pulse_gen_dis) { - cpg11_pulse_suspend_by_pulse_id(p_pulse_genA[1].pulse_id); + cpg11_pulse_suspend_by_pulse_id(pulse_gen[1].pulse_id); NRF_LOG_INFO("suspend electrodes2_pulse_gen"); } if (electrodes3_pulse_gen_dis) { - cpg11_pulse_suspend_by_pulse_id(p_pulse_genB[0].pulse_id); + cpg11_pulse_suspend_by_pulse_id(pulse_gen[2].pulse_id); NRF_LOG_INFO("suspend electrodes3_pulse_gen"); } if (electrodes4_pulse_gen_dis) { - cpg11_pulse_suspend_by_pulse_id(p_pulse_genB[1].pulse_id); + cpg11_pulse_suspend_by_pulse_id(pulse_gen[3].pulse_id); NRF_LOG_INFO("suspend electrodes4_pulse_gen"); } } @@ -834,25 +724,25 @@ static void resume_which_electrodes(uint8_t *ins) if (electrodes1_pulse_gen_dis) { - cpg11_pulse_resume_by_pulse_id(p_pulse_genA[0].pulse_id); + cpg11_pulse_resume_by_pulse_id(pulse_gen[0].pulse_id); NRF_LOG_INFO("resume electrodes1_pulse_gen"); } if (electrodes2_pulse_gen_dis) { - cpg11_pulse_resume_by_pulse_id(p_pulse_genA[1].pulse_id); + cpg11_pulse_resume_by_pulse_id(pulse_gen[1].pulse_id); NRF_LOG_INFO("resume electrodes2_pulse_gen"); } if (electrodes3_pulse_gen_dis) { - cpg11_pulse_resume_by_pulse_id(p_pulse_genB[0].pulse_id); + cpg11_pulse_resume_by_pulse_id(pulse_gen[2].pulse_id); NRF_LOG_INFO("resume electrodes3_pulse_gen"); } if (electrodes4_pulse_gen_dis) { - cpg11_pulse_resume_by_pulse_id(p_pulse_genB[1].pulse_id); + cpg11_pulse_resume_by_pulse_id(pulse_gen[3].pulse_id); NRF_LOG_INFO("resume electrodes4_pulse_gen"); } }