update: update a bunch of functions in dev mode
This commit is contained in:
@@ -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__);
|
||||
|
||||
+281
-315
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user