fix: cpg_pulse_default_demo & output pulse functions
This commit is contained in:
+199
-213
@@ -54,72 +54,12 @@ const uint32_t pin_to_gpio_table[] = {
|
||||
[62] = NRF_GPIO_PIN_MAP(0, 16),
|
||||
};
|
||||
|
||||
static pusle_gen_t dev_mode_pusle_gen[4] = {
|
||||
{
|
||||
.VBxH = VB1H_PIN,
|
||||
.VBxL = VB1L_PIN,
|
||||
.VAxH = VA1H_PIN,
|
||||
.VAxL = VA1L_PIN,
|
||||
.idle_us = 1000,
|
||||
.point_us[0] = 1,
|
||||
.point_us[1] = 250,
|
||||
.point_us[2] = 1,
|
||||
.point_us[3] = 0,
|
||||
.point_us[4] = 1,
|
||||
.point_us[5] = 250,
|
||||
.point_us[6] = 1,
|
||||
.pulse_cnt = 0xFFFFFFFF,
|
||||
.pulse_id = PULSE_ID_NULL,
|
||||
},
|
||||
{
|
||||
.VBxH = VB2H_PIN,
|
||||
.VBxL = VB2L_PIN,
|
||||
.VAxH = VA2H_PIN,
|
||||
.VAxL = VA2L_PIN,
|
||||
.idle_us = 1000,
|
||||
.point_us[0] = 1,
|
||||
.point_us[1] = 250,
|
||||
.point_us[2] = 1,
|
||||
.point_us[3] = 0,
|
||||
.point_us[4] = 1,
|
||||
.point_us[5] = 250,
|
||||
.point_us[6] = 1,
|
||||
.pulse_cnt = 0xFFFFFFFF,
|
||||
.pulse_id = PULSE_ID_NULL,
|
||||
},
|
||||
{
|
||||
.VBxH = VB3H_PIN,
|
||||
.VBxL = VB3L_PIN,
|
||||
.VAxH = VA3H_PIN,
|
||||
.VAxL = VA3L_PIN,
|
||||
.idle_us = 1000,
|
||||
.point_us[0] = 1,
|
||||
.point_us[1] = 250,
|
||||
.point_us[2] = 1,
|
||||
.point_us[3] = 0,
|
||||
.point_us[4] = 1,
|
||||
.point_us[5] = 250,
|
||||
.point_us[6] = 1,
|
||||
.pulse_cnt = 0xFFFFFFFF,
|
||||
.pulse_id = PULSE_ID_NULL,
|
||||
},
|
||||
{
|
||||
.VBxH = VB4H_PIN,
|
||||
.VBxL = VB4L_PIN,
|
||||
.VAxH = VA4H_PIN,
|
||||
.VAxL = VA4L_PIN,
|
||||
.idle_us = 1000,
|
||||
.point_us[0] = 1,
|
||||
.point_us[1] = 250,
|
||||
.point_us[2] = 1,
|
||||
.point_us[3] = 0,
|
||||
.point_us[4] = 1,
|
||||
.point_us[5] = 250,
|
||||
.point_us[6] = 1,
|
||||
.pulse_cnt = 0xFFFFFFFF,
|
||||
.pulse_id = PULSE_ID_NULL,
|
||||
}
|
||||
};
|
||||
#define PULSE_GEN_A_NUMB 2
|
||||
#define PULSE_GEN_B_NUMB 2
|
||||
uint32_t pusle_genB_numb = 2;
|
||||
static pusle_gen_t p_pusle_genA[PULSE_GEN_A_NUMB];
|
||||
static pusle_gen_t p_pusle_genB[PULSE_GEN_B_NUMB];
|
||||
static pusle_gen_t pusle_gen[PULSE_GEN_A_NUMB+PULSE_GEN_B_NUMB];
|
||||
|
||||
static uint32_t bmd380pins_convert_to_gpio(uint32_t pin)
|
||||
{
|
||||
@@ -374,38 +314,91 @@ static void cpg11_electrodes(uint32_t electrodes_mode)
|
||||
static void set_cpg_pulse_parameter(uint8_t *ins)
|
||||
{
|
||||
NRF_LOG_INFO("%s", __FUNCTION__);
|
||||
uint8_t electrodes_pulse_gen_sel[] = {
|
||||
(ins[5] & 0b10000000) >> 7,
|
||||
(ins[5] & 0b01000000) >> 6,
|
||||
(ins[5] & 0b00100000) >> 5,
|
||||
(ins[5] & 0b00010000) >> 4
|
||||
};
|
||||
uint8_t electrodes1_pulse_gen_sel = (ins[5] & 0b10000000) >> 7;
|
||||
uint8_t electrodes2_pulse_gen_sel = (ins[5] & 0b01000000) >> 6;
|
||||
uint8_t electrodes3_pulse_gen_sel = (ins[5] & 0b00100000) >> 5;
|
||||
uint8_t electrodes4_pulse_gen_sel = (ins[5] & 0b00010000) >> 4;
|
||||
uint32_t pulse_width_us = (uint32_t)ins[6] << 24 | (uint32_t)ins[7] << 16 | (uint32_t)ins[8] << 8 | (uint32_t)ins[9];
|
||||
uint32_t freq_hz = (uint32_t)ins[10] << 24 | (uint32_t)ins[11] << 16 | (uint32_t)ins[12] << 8 | (uint32_t)ins[13];
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
if (electrodes_pulse_gen_sel[i])
|
||||
{
|
||||
dev_mode_pusle_gen[i].point_us[1] = pulse_width_us;
|
||||
dev_mode_pusle_gen[i].point_us[5] = pulse_width_us;
|
||||
dev_mode_pusle_gen[i].idle_us = (1000000 / freq_hz) - (dev_mode_pusle_gen[i].point_us[0] +
|
||||
dev_mode_pusle_gen[i].point_us[1] +
|
||||
dev_mode_pusle_gen[i].point_us[2] +
|
||||
dev_mode_pusle_gen[i].point_us[3] +
|
||||
dev_mode_pusle_gen[i].point_us[4] +
|
||||
dev_mode_pusle_gen[i].point_us[5] +
|
||||
dev_mode_pusle_gen[i].point_us[6]);
|
||||
NRF_LOG_INFO("[%d]a = %d us", i + 1, dev_mode_pusle_gen[0].point_us[0]);
|
||||
NRF_LOG_INFO("[%d]b = %d us", i + 1, dev_mode_pusle_gen[i].point_us[1]);
|
||||
NRF_LOG_INFO("[%d]c = %d us", i + 1, dev_mode_pusle_gen[i].point_us[2]);
|
||||
NRF_LOG_INFO("[%d]d = %d us", i + 1, dev_mode_pusle_gen[i].point_us[3]);
|
||||
NRF_LOG_INFO("[%d]e = %d us", i + 1, dev_mode_pusle_gen[i].point_us[4]);
|
||||
NRF_LOG_INFO("[%d]f = %d us", i + 1, dev_mode_pusle_gen[i].point_us[5]);
|
||||
NRF_LOG_INFO("[%d]g = %d us", i + 1, dev_mode_pusle_gen[i].point_us[6]);
|
||||
NRF_LOG_INFO("[%d]idle = %d us", i + 1, dev_mode_pusle_gen[i].idle_us);
|
||||
}
|
||||
|
||||
if (electrodes1_pulse_gen_sel) {
|
||||
pusle_gen[0] = (pusle_gen_t) {
|
||||
.VBxH = VB1H_PIN,
|
||||
.VBxL = VB1L_PIN,
|
||||
.VAxH = VA1H_PIN,
|
||||
.VAxL = VA1L_PIN,
|
||||
.point_us[0] = 1,
|
||||
.point_us[1] = 50,
|
||||
.point_us[2] = 1,
|
||||
.point_us[3] = 0,
|
||||
.point_us[4] = 1,
|
||||
.point_us[5] = 50,
|
||||
.point_us[6] = 1,
|
||||
.idle_us = 500,
|
||||
.pulse_cnt = UINT32_MAX,
|
||||
.pulse_id = PULSE_ID_NULL,
|
||||
};
|
||||
}
|
||||
|
||||
if (electrodes2_pulse_gen_sel) {
|
||||
pusle_gen[1] = (pusle_gen_t) {
|
||||
.VBxH = VB2H_PIN,
|
||||
.VBxL = VB2L_PIN,
|
||||
.VAxH = VA2H_PIN,
|
||||
.VAxL = VA2L_PIN,
|
||||
.point_us[0] = 1,
|
||||
.point_us[1] = 50,
|
||||
.point_us[2] = 1,
|
||||
.point_us[3] = 0,
|
||||
.point_us[4] = 1,
|
||||
.point_us[5] = 50,
|
||||
.point_us[6] = 1,
|
||||
.idle_us = 500,
|
||||
.pulse_cnt = UINT32_MAX,
|
||||
.pulse_id = PULSE_ID_NULL,
|
||||
};
|
||||
}
|
||||
|
||||
if (electrodes3_pulse_gen_sel) {
|
||||
pusle_gen[2] = (pusle_gen_t) {
|
||||
.VBxH = VB3H_PIN,
|
||||
.VBxL = VB3L_PIN,
|
||||
.VAxH = VA3H_PIN,
|
||||
.VAxL = VA3L_PIN,
|
||||
.point_us[0] = 1,
|
||||
.point_us[1] = 50,
|
||||
.point_us[2] = 1,
|
||||
.point_us[3] = 0,
|
||||
.point_us[4] = 1,
|
||||
.point_us[5] = 50,
|
||||
.point_us[6] = 1,
|
||||
.idle_us = 500,
|
||||
.pulse_cnt = UINT32_MAX,
|
||||
.pulse_id = PULSE_ID_NULL,
|
||||
};
|
||||
}
|
||||
|
||||
if (electrodes4_pulse_gen_sel) {
|
||||
pusle_gen[3] = (pusle_gen_t) {
|
||||
.VBxH = VB4H_PIN,
|
||||
.VBxL = VB4L_PIN,
|
||||
.VAxH = VA4H_PIN,
|
||||
.VAxL = VA4L_PIN,
|
||||
.point_us[0] = 1,
|
||||
.point_us[1] = 50,
|
||||
.point_us[2] = 1,
|
||||
.point_us[3] = 0,
|
||||
.point_us[4] = 1,
|
||||
.point_us[5] = 50,
|
||||
.point_us[6] = 1,
|
||||
.idle_us = 500,
|
||||
.pulse_cnt = UINT32_MAX,
|
||||
.pulse_id = PULSE_ID_NULL,
|
||||
};
|
||||
}
|
||||
|
||||
NRF_LOG_INFO("set ok......");
|
||||
|
||||
}
|
||||
|
||||
static void start_which_electrodes(uint8_t *ins)
|
||||
@@ -416,63 +409,46 @@ static void start_which_electrodes(uint8_t *ins)
|
||||
uint8_t electrodes3_pulse_gen_en = (ins[5] & 0b00100000) >> 5;
|
||||
uint8_t electrodes4_pulse_gen_en = (ins[5] & 0b00010000) >> 4;
|
||||
|
||||
bool timer1_IRQ_running = is_pulse_gen_running(0);
|
||||
bool timer2_IRQ_running = is_pulse_gen_running(1);
|
||||
|
||||
NRF_LOG_INFO("timer1_IRQ_running = %d", timer1_IRQ_running);
|
||||
NRF_LOG_INFO("timer2_IRQ_running = %d", timer2_IRQ_running);
|
||||
NRF_LOG_INFO("[1] pulse_id = %02X", dev_mode_pusle_gen[0].pulse_id);
|
||||
NRF_LOG_INFO("[2] pulse_id = %02X", dev_mode_pusle_gen[1].pulse_id);
|
||||
NRF_LOG_INFO("[3] pulse_id = %02X", dev_mode_pusle_gen[2].pulse_id);
|
||||
NRF_LOG_INFO("[4] pulse_id = %02X", dev_mode_pusle_gen[3].pulse_id);
|
||||
|
||||
if (timer1_IRQ_running && timer2_IRQ_running)
|
||||
if (electrodes1_pulse_gen_en)
|
||||
{
|
||||
NRF_LOG_INFO("TIMER1_IRQ & TIMER2_IRQ are already running, so they cannot generate the waveform for electrodes 1~4");
|
||||
return;
|
||||
p_pusle_genA[0] = pusle_gen[0];
|
||||
p_pusle_genA[0].pulse_id = PULSE_ID_A;
|
||||
cpg11_pulse_init(0, &p_pusle_genA[0], 1);
|
||||
cpg11_pulse_start(0, &p_pusle_genA[0]);
|
||||
NRF_LOG_INFO("start electrodes1_pulse_gen");
|
||||
}
|
||||
else if (electrodes2_pulse_gen_en)
|
||||
{
|
||||
p_pusle_genA[1] = pusle_gen[1];
|
||||
p_pusle_genA[1].pulse_id = PULSE_ID_B;
|
||||
cpg11_pulse_init(0, &p_pusle_genA[1], 1);
|
||||
cpg11_pulse_start(0, &p_pusle_genA[1]);
|
||||
NRF_LOG_INFO("start electrodes2_pulse_gen");
|
||||
}
|
||||
|
||||
if (!timer1_IRQ_running)
|
||||
if (electrodes3_pulse_gen_en)
|
||||
{
|
||||
if (electrodes1_pulse_gen_en)
|
||||
{
|
||||
dev_mode_pusle_gen[0].pulse_id = PULSE_ID_A;
|
||||
cpg11_pulse_init(0, &dev_mode_pusle_gen[0], 1);
|
||||
cpg11_pulse_start(0, &dev_mode_pusle_gen[0]);
|
||||
NRF_LOG_INFO("start electrodes1_pulse_gen");
|
||||
}
|
||||
else if (electrodes2_pulse_gen_en)
|
||||
{
|
||||
dev_mode_pusle_gen[1].pulse_id = PULSE_ID_B;
|
||||
cpg11_pulse_init(0, &dev_mode_pusle_gen[1], 1);
|
||||
cpg11_pulse_start(0, &dev_mode_pusle_gen[1]);
|
||||
NRF_LOG_INFO("start electrodes2_pulse_gen");
|
||||
}
|
||||
p_pusle_genB[0] = pusle_gen[2];
|
||||
p_pusle_genB[0].pulse_id = PULSE_ID_C;
|
||||
cpg11_pulse_init(1, &p_pusle_genB[0], 1);
|
||||
cpg11_pulse_start(1, &p_pusle_genB[0]);
|
||||
NRF_LOG_INFO("start electrodes3_pulse_gen");
|
||||
}
|
||||
else if (electrodes4_pulse_gen_en)
|
||||
{
|
||||
p_pusle_genB[1] = pusle_gen[3];
|
||||
p_pusle_genB[1].pulse_id = PULSE_ID_D;
|
||||
cpg11_pulse_init(1, &p_pusle_genB[1], 1);
|
||||
cpg11_pulse_start(1, &p_pusle_genB[1]);
|
||||
NRF_LOG_INFO("start electrodes4_pulse_gen");
|
||||
}
|
||||
|
||||
if (!timer2_IRQ_running)
|
||||
{
|
||||
if (electrodes3_pulse_gen_en)
|
||||
{
|
||||
dev_mode_pusle_gen[2].pulse_id = PULSE_ID_C;
|
||||
cpg11_pulse_init(1, &dev_mode_pusle_gen[2], 1);
|
||||
cpg11_pulse_start(1, &dev_mode_pusle_gen[2]);
|
||||
NRF_LOG_INFO("start electrodes3_pulse_gen");
|
||||
}
|
||||
else if (electrodes4_pulse_gen_en)
|
||||
{
|
||||
dev_mode_pusle_gen[3].pulse_id = PULSE_ID_D;
|
||||
cpg11_pulse_init(1, &dev_mode_pusle_gen[3], 1);
|
||||
cpg11_pulse_start(1, &dev_mode_pusle_gen[3]);
|
||||
NRF_LOG_INFO("start electrodes4_pulse_gen");
|
||||
}
|
||||
for (int i=0; i<2; i++) {
|
||||
NRF_LOG_INFO("pusle_genA[%d]pulse_id: %d", i, p_pusle_genA[i].pulse_id);
|
||||
}
|
||||
for (int i=0; i<2; i++) {
|
||||
NRF_LOG_INFO("pusle_genB[%d]pulse_id: %d", i, p_pusle_genB[i].pulse_id);
|
||||
}
|
||||
|
||||
NRF_LOG_INFO("after...");
|
||||
NRF_LOG_INFO("[1] pulse_id = %02X", dev_mode_pusle_gen[0].pulse_id);
|
||||
NRF_LOG_INFO("[2] pulse_id = %02X", dev_mode_pusle_gen[1].pulse_id);
|
||||
NRF_LOG_INFO("[3] pulse_id = %02X", dev_mode_pusle_gen[2].pulse_id);
|
||||
NRF_LOG_INFO("[4] pulse_id = %02X", dev_mode_pusle_gen[3].pulse_id);
|
||||
}
|
||||
|
||||
static void stop_which_electrodes(uint8_t *ins)
|
||||
@@ -483,111 +459,121 @@ static void stop_which_electrodes(uint8_t *ins)
|
||||
uint8_t electrodes3_pulse_gen_dis = (ins[5] & 0b00100000) >> 5;
|
||||
uint8_t electrodes4_pulse_gen_dis = (ins[5] & 0b00010000) >> 4;
|
||||
|
||||
bool timer1_IRQ_running = is_pulse_gen_running(0);
|
||||
bool timer2_IRQ_running = is_pulse_gen_running(1);
|
||||
|
||||
NRF_LOG_INFO("timer1_IRQ_running = %d", timer1_IRQ_running);
|
||||
NRF_LOG_INFO("timer2_IRQ_running = %d", timer2_IRQ_running);
|
||||
NRF_LOG_INFO("[1] pulse_id = %02X", dev_mode_pusle_gen[0].pulse_id);
|
||||
NRF_LOG_INFO("[2] pulse_id = %02X", dev_mode_pusle_gen[1].pulse_id);
|
||||
NRF_LOG_INFO("[3] pulse_id = %02X", dev_mode_pusle_gen[2].pulse_id);
|
||||
NRF_LOG_INFO("[4] pulse_id = %02X", dev_mode_pusle_gen[3].pulse_id);
|
||||
|
||||
if (!timer1_IRQ_running && !timer2_IRQ_running)
|
||||
{
|
||||
NRF_LOG_INFO("TIMER1_IRQ and TIMER2_IRQ have already stopped, so they cannot stop the waveform for electrodes 1~4");
|
||||
return;
|
||||
}
|
||||
|
||||
if (electrodes1_pulse_gen_dis)
|
||||
{
|
||||
cpg11_pulse_stop_by_pulse_id(dev_mode_pusle_gen[0].pulse_id);
|
||||
dev_mode_pusle_gen[0].pulse_id = PULSE_ID_NULL;
|
||||
cpg11_pulse_stop_by_pulse_id(p_pusle_genA[0].pulse_id);
|
||||
p_pusle_genA[0].pulse_id = PULSE_ID_NULL;
|
||||
NRF_LOG_INFO("stop electrodes1_pulse_gen");
|
||||
}
|
||||
|
||||
if (electrodes2_pulse_gen_dis)
|
||||
{
|
||||
cpg11_pulse_stop_by_pulse_id(dev_mode_pusle_gen[1].pulse_id);
|
||||
dev_mode_pusle_gen[1].pulse_id = PULSE_ID_NULL;
|
||||
cpg11_pulse_stop_by_pulse_id(p_pusle_genA[1].pulse_id);
|
||||
p_pusle_genA[1].pulse_id = PULSE_ID_NULL;
|
||||
NRF_LOG_INFO("stop electrodes2_pulse_gen");
|
||||
}
|
||||
|
||||
if (electrodes3_pulse_gen_dis)
|
||||
{
|
||||
cpg11_pulse_stop_by_pulse_id(dev_mode_pusle_gen[2].pulse_id);
|
||||
dev_mode_pusle_gen[2].pulse_id = PULSE_ID_NULL;
|
||||
cpg11_pulse_stop_by_pulse_id(p_pusle_genB[0].pulse_id);
|
||||
p_pusle_genB[0].pulse_id = PULSE_ID_NULL;
|
||||
NRF_LOG_INFO("stop electrodes3_pulse_gen");
|
||||
}
|
||||
|
||||
if (electrodes4_pulse_gen_dis)
|
||||
{
|
||||
cpg11_pulse_stop_by_pulse_id(dev_mode_pusle_gen[3].pulse_id);
|
||||
dev_mode_pusle_gen[3].pulse_id = PULSE_ID_NULL;
|
||||
NRF_LOG_INFO("stop electrodes3_pulse_gen");
|
||||
cpg11_pulse_stop_by_pulse_id(p_pusle_genB[1].pulse_id);
|
||||
p_pusle_genB[1].pulse_id = PULSE_ID_NULL;
|
||||
NRF_LOG_INFO("stop electrodes4_pulse_gen");
|
||||
}
|
||||
|
||||
NRF_LOG_INFO("after");
|
||||
NRF_LOG_INFO("[1] pulse_id = %02X", dev_mode_pusle_gen[0].pulse_id);
|
||||
NRF_LOG_INFO("[2] pulse_id = %02X", dev_mode_pusle_gen[1].pulse_id);
|
||||
NRF_LOG_INFO("[3] pulse_id = %02X", dev_mode_pusle_gen[2].pulse_id);
|
||||
NRF_LOG_INFO("[4] pulse_id = %02X", dev_mode_pusle_gen[3].pulse_id);
|
||||
for (int i=0; i<2; i++) {
|
||||
NRF_LOG_INFO("pusle_genA[%d]pulse_id: %d", i, p_pusle_genA[i].pulse_id);
|
||||
}
|
||||
for (int i=0; i<2; i++) {
|
||||
NRF_LOG_INFO("pusle_genB[%d]pulse_id: %d", i, p_pusle_genB[i].pulse_id);
|
||||
}
|
||||
|
||||
NRF_LOG_INFO("\n\n")
|
||||
}
|
||||
|
||||
static void set_cpg_pulse_cnt(uint8_t *ins)
|
||||
{
|
||||
NRF_LOG_INFO("%s", __FUNCTION__);
|
||||
uint8_t electrodes_pulse_gen_sel[] = {
|
||||
(ins[5] & 0b10000000) >> 7,
|
||||
(ins[5] & 0b01000000) >> 6,
|
||||
(ins[5] & 0b00100000) >> 5,
|
||||
(ins[5] & 0b00010000) >> 4
|
||||
};
|
||||
uint8_t electrodes1_pulse_gen_sel = (ins[5] & 0b10000000) >> 7;
|
||||
uint8_t electrodes2_pulse_gen_sel = (ins[5] & 0b01000000) >> 6;
|
||||
uint8_t electrodes3_pulse_gen_sel = (ins[5] & 0b00100000) >> 5;
|
||||
uint8_t electrodes4_pulse_gen_sel = (ins[5] & 0b00010000) >> 4;
|
||||
uint32_t pulse_cnt = (uint32_t)ins[6] << 24 | (uint32_t)ins[7] << 16 | (uint32_t)ins[8] << 8 | (uint32_t)ins[9];
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
if (electrodes1_pulse_gen_sel)
|
||||
{
|
||||
if (electrodes_pulse_gen_sel[i])
|
||||
{
|
||||
dev_mode_pusle_gen[i].pulse_cnt = pulse_cnt;
|
||||
NRF_LOG_INFO("[%d]pulse_cnt = %d cnt", i + 1, dev_mode_pusle_gen[i].pulse_cnt);
|
||||
}
|
||||
p_pusle_genA[0].pulse_cnt = pulse_cnt;
|
||||
NRF_LOG_INFO("[1] pulse_cnt = %d cnt", p_pusle_genA[0].pulse_cnt);
|
||||
}
|
||||
|
||||
if (electrodes2_pulse_gen_sel)
|
||||
{
|
||||
p_pusle_genA[1].pulse_cnt = pulse_cnt;
|
||||
NRF_LOG_INFO("[2] pulse_cnt = %d cnt", p_pusle_genA[1].pulse_cnt);
|
||||
}
|
||||
|
||||
if (electrodes3_pulse_gen_sel)
|
||||
{
|
||||
p_pusle_genB[0].pulse_cnt = pulse_cnt;
|
||||
NRF_LOG_INFO("[3] pulse_cnt = %d cnt", p_pusle_genB[0].pulse_cnt);
|
||||
}
|
||||
|
||||
if (electrodes1_pulse_gen_sel)
|
||||
{
|
||||
p_pusle_genB[1].pulse_cnt = pulse_cnt;
|
||||
NRF_LOG_INFO("[4] pulse_cnt = %d cnt", p_pusle_genB[1].pulse_cnt);
|
||||
}
|
||||
}
|
||||
|
||||
void cpg_pulse_default_demo(void)
|
||||
{
|
||||
NRF_LOG_INFO("%s", __FUNCTION__);
|
||||
bool timer1_IRQ_running = is_pulse_gen_running(0);
|
||||
bool timer2_IRQ_running = is_pulse_gen_running(1);
|
||||
pusle_gen_t pusle_gen_demo[PULSE_GEN_A_NUMB+PULSE_GEN_B_NUMB];
|
||||
|
||||
NRF_LOG_INFO("timer1_IRQ_running = %d", timer1_IRQ_running);
|
||||
NRF_LOG_INFO("timer2_IRQ_running = %d", timer2_IRQ_running);
|
||||
cpg11_pulse_stop_by_pulse_id(p_pusle_genA[0].pulse_id);
|
||||
p_pusle_genA[0].pulse_id = PULSE_ID_NULL;
|
||||
NRF_LOG_INFO("stop electrodes1_pulse_gen");
|
||||
|
||||
if (timer1_IRQ_running || timer2_IRQ_running)
|
||||
{
|
||||
NRF_LOG_INFO("please stop running pulse");
|
||||
return;
|
||||
}
|
||||
cpg11_pulse_stop_by_pulse_id(p_pusle_genA[1].pulse_id);
|
||||
p_pusle_genA[1].pulse_id = PULSE_ID_NULL;
|
||||
NRF_LOG_INFO("stop electrodes2_pulse_gen");
|
||||
|
||||
dev_mode_pusle_gen[2].VBxH = VB3H_PIN;
|
||||
dev_mode_pusle_gen[2].VBxL = VB3L_PIN;
|
||||
dev_mode_pusle_gen[2].VAxH = VA3H_PIN;
|
||||
dev_mode_pusle_gen[2].VAxL = VA3L_PIN;
|
||||
dev_mode_pusle_gen[2].idle_us = 1000;
|
||||
dev_mode_pusle_gen[2].point_us[0] = 1;
|
||||
dev_mode_pusle_gen[2].point_us[1] = 250;
|
||||
dev_mode_pusle_gen[2].point_us[2] = 1;
|
||||
dev_mode_pusle_gen[2].point_us[3] = 0;
|
||||
dev_mode_pusle_gen[2].point_us[4] = 1;
|
||||
dev_mode_pusle_gen[2].point_us[5] = 250;
|
||||
dev_mode_pusle_gen[2].point_us[6] = 1;
|
||||
dev_mode_pusle_gen[2].pulse_cnt = 0xFFFFFFFF;
|
||||
dev_mode_pusle_gen[2].pulse_id = PULSE_ID_B;
|
||||
cpg11_pulse_stop_by_pulse_id(p_pusle_genB[0].pulse_id);
|
||||
p_pusle_genB[0].pulse_id = PULSE_ID_NULL;
|
||||
NRF_LOG_INFO("stop electrodes3_pulse_gen");
|
||||
|
||||
cpg11_pulse_init(0, &dev_mode_pusle_gen[2], 1);
|
||||
cpg11_pulse_start(0, &dev_mode_pusle_gen[2]);
|
||||
NRF_LOG_INFO("cpg_pulse_default_demo: start electrodes3_pulse_gen");
|
||||
cpg11_pulse_stop_by_pulse_id(p_pusle_genB[1].pulse_id);
|
||||
p_pusle_genB[1].pulse_id = PULSE_ID_NULL;
|
||||
NRF_LOG_INFO("stop electrodes4_pulse_gen");
|
||||
|
||||
pusle_gen_demo[2] = (pusle_gen_t) {
|
||||
.VBxH = VB3H_PIN,
|
||||
.VBxL = VB3L_PIN,
|
||||
.VAxH = VA3H_PIN,
|
||||
.VAxL = VA3L_PIN,
|
||||
.point_us[0] = 1,
|
||||
.point_us[1] = 250,
|
||||
.point_us[2] = 1,
|
||||
.point_us[3] = 0,
|
||||
.point_us[4] = 1,
|
||||
.point_us[5] = 250,
|
||||
.point_us[6] = 1,
|
||||
.idle_us = 1000,
|
||||
.pulse_cnt = UINT32_MAX,
|
||||
.pulse_id = PULSE_ID_NULL,
|
||||
};
|
||||
|
||||
p_pusle_genB[0] = pusle_gen_demo[2];
|
||||
p_pusle_genB[0].pulse_id = PULSE_ID_C;
|
||||
cpg11_pulse_init(1, &p_pusle_genB[0], 1);
|
||||
cpg11_pulse_start(1, &p_pusle_genB[0]);
|
||||
NRF_LOG_INFO("start electrodes3_pulse_gen");
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+1
-1
@@ -407,7 +407,7 @@ void cpg11_io_init(void)
|
||||
sd_nvic_SetPriority(pusle_gen_hw[i].IRQn, _PRIO_APP_HIGH);
|
||||
}
|
||||
|
||||
cpg_pulse_default_demo_ext();
|
||||
//cpg_pulse_default_demo_ext();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user