From de7403ed520bfbf2e1eb250858f6a5263dbec56b Mon Sep 17 00:00:00 2001 From: Roy_01 Date: Wed, 30 Oct 2024 14:39:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9cpg=5Fpulse=5Fdefault?= =?UTF-8?q?=5Fdemo=5Fext(),=20=E5=8F=AF=E8=A8=AD=E5=AE=9Ae1,e2,e3,e4?= =?UTF-8?q?=E4=BE=86=E8=BC=B8=E5=87=BA=E8=84=88=E6=B3=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cpg.c | 4 +- cpg11_io.c | 232 +++++++++++++++++++++++++++++------------------------ 2 files changed, 128 insertions(+), 108 deletions(-) diff --git a/cpg.c b/cpg.c index 58f8bf1..6f61424 100644 --- a/cpg.c +++ b/cpg.c @@ -15,8 +15,8 @@ #define VERSION_DATE_YEAR 24 #define VERSION_DATE_MONTH 10 #define VERSION_DATE_DAY 30 -#define VERSION_DATE_HOUR 11 -#define VERSION_DATE_MINUTE 16 +#define VERSION_DATE_HOUR 14 +#define VERSION_DATE_MINUTE 39 static void cis_version(uint8_t *ins, uint16_t size) { NRF_LOG_INFO("%s", __FUNCTION__); diff --git a/cpg11_io.c b/cpg11_io.c index c57dc13..1b6d1ba 100644 --- a/cpg11_io.c +++ b/cpg11_io.c @@ -329,133 +329,153 @@ void cpg11_pulse_init(uint32_t hw_idx, pulse_gen_t *p_pulse_gen, uint32_t len) void cpg_pulse_default_demo_ext(void) { - uint32_t pulse_gen_numb = 2; + bool e1 = 0; + bool e2 = 1; + bool e3 = 1; + bool e4 = 1; + pulse_gen_t p_pulse_genA[2]; + pulse_gen_t p_pulse_genB[2]; - pulse_gen_t *p_pulse_genA = pvPortMalloc(sizeof(pulse_gen_t) * pulse_gen_numb); - pulse_gen_t *p_pulse_genB = pvPortMalloc(sizeof(pulse_gen_t) * pulse_gen_numb); + p_pulse_genA[0] = (pulse_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 = 1000, + .pulse_cnt = UINT32_MAX, + .pulse_id = PULSE_ID_A, + }; - memset(p_pulse_genA, 0x00, sizeof(pulse_gen_t) * pulse_gen_numb); - memset(p_pulse_genB, 0x00, sizeof(pulse_gen_t) * pulse_gen_numb); + p_pulse_genA[1] = (pulse_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 = 1000, + .pulse_cnt = UINT32_MAX, + .pulse_id = PULSE_ID_B, + }; - if (pulse_gen_numb > 0) + p_pulse_genB[0] = (pulse_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 = 1000, + .pulse_cnt = UINT32_MAX, + .pulse_id = PULSE_ID_C, + }; + + p_pulse_genB[1] = (pulse_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 = 1000, + .pulse_cnt = UINT32_MAX, + .pulse_id = PULSE_ID_B, + }; + + if(e1) { - p_pulse_genA[0] = (pulse_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 = 1000, - .pulse_cnt = UINT32_MAX, - .pulse_id = 0, - }; + nrf_gpio_pin_clear(p_pulse_genA[0].VBxL); + nrf_gpio_pin_clear(p_pulse_genA[0].VBxH); + nrf_gpio_pin_clear(p_pulse_genA[0].VAxL); + nrf_gpio_pin_clear(p_pulse_genA[0].VAxH); } - if (pulse_gen_numb > 1) + if(e2) { - p_pulse_genA[1] = (pulse_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 = 1000, - .pulse_cnt = UINT32_MAX, - .pulse_id = 1, - }; + nrf_gpio_pin_clear(p_pulse_genA[1].VBxL); + nrf_gpio_pin_clear(p_pulse_genA[1].VBxH); + nrf_gpio_pin_clear(p_pulse_genA[1].VAxL); + nrf_gpio_pin_clear(p_pulse_genA[1].VAxH); } - if (pulse_gen_numb > 0) + if(e3) { - p_pulse_genB[0] = (pulse_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 = 1000, - .pulse_cnt = UINT32_MAX, - .pulse_id = 2, - }; + nrf_gpio_pin_clear(p_pulse_genB[0].VBxL); + nrf_gpio_pin_clear(p_pulse_genB[0].VBxH); + nrf_gpio_pin_clear(p_pulse_genB[0].VAxL); + nrf_gpio_pin_clear(p_pulse_genB[0].VAxH); } - if (pulse_gen_numb > 1) + if(e4) { - p_pulse_genB[1] = (pulse_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 = 1000, - .pulse_cnt = UINT32_MAX, - .pulse_id = 3, - }; + nrf_gpio_pin_clear(p_pulse_genB[1].VBxL); + nrf_gpio_pin_clear(p_pulse_genB[1].VBxH); + nrf_gpio_pin_clear(p_pulse_genB[1].VAxL); + nrf_gpio_pin_clear(p_pulse_genB[1].VAxH); } - for (uint32_t i = 0; i < pulse_gen_numb; i++) + + if (e1 && e2) { - nrf_gpio_pin_clear(p_pulse_genA[i].VBxL); - nrf_gpio_pin_clear(p_pulse_genA[i].VBxH); - nrf_gpio_pin_clear(p_pulse_genA[i].VAxL); - nrf_gpio_pin_clear(p_pulse_genA[i].VAxH); + cpg11_pulse_init(0, p_pulse_genA, 2); + cpg11_pulse_start(0, p_pulse_genA); + } + else if (e1 && e2==0) + { + cpg11_pulse_init(0, p_pulse_genA, 1); + cpg11_pulse_start(0, p_pulse_genA); + } + else if (e2 && e1==0) + { + cpg11_pulse_init(0, &p_pulse_genA[1], 1); + cpg11_pulse_start(0, &p_pulse_genA[1]); } - for (uint32_t i = 0; i < pulse_gen_numb; i++) + if (e3 && e4) { - nrf_gpio_pin_clear(p_pulse_genB[i].VBxL); - nrf_gpio_pin_clear(p_pulse_genB[i].VBxH); - nrf_gpio_pin_clear(p_pulse_genB[i].VAxL); - nrf_gpio_pin_clear(p_pulse_genB[i].VAxH); + cpg11_pulse_init(1, p_pulse_genB, 2); + cpg11_pulse_start(1, p_pulse_genB); + } + else if (e3 && e4==0) + { + cpg11_pulse_init(1, p_pulse_genB, 1); + cpg11_pulse_start(1, p_pulse_genB); + } + else if (e4 && e3==0) + { + cpg11_pulse_init(1, &p_pulse_genB[1], 1); + cpg11_pulse_start(1, &p_pulse_genB[1]); } - cpg11_pulse_init(0, p_pulse_genA, pulse_gen_numb); - - cpg11_pulse_init(1, p_pulse_genB, pulse_gen_numb); - - cpg11_pulse_start(0, p_pulse_genA); - - cpg11_pulse_start(1, p_pulse_genB); - - for (;;) - { - vTaskDelay(10); - cpg11_pulse_suspend_by_pulse_id(p_pulse_genA[0].pulse_id); - vTaskDelay(10); - cpg11_pulse_resume_by_pulse_id(p_pulse_genA[0].pulse_id); - } - // cpg11_pulse_suspend_by_pulse_id(p_pulse_gen[0].pulse_id); - // cpg11_pulse_suspend_by_pulse_id(p_pulse_gen[1].pulse_id); - // cpg11_pulse_suspend_by_pulse_id(p_pulse_gen[2].pulse_id); - // cpg11_pulse_suspend_by_pulse_id(p_pulse_gen[3].pulse_id); - // cpg11_pulse_suspend_by_pulse_id(p_pulse_gen[4].pulse_id); - - vPortFree(p_pulse_genA); - vPortFree(p_pulse_genB); + // for (;;) + // { + // vTaskDelay(10); + // cpg11_pulse_suspend_by_pulse_id(p_pulse_genA[0].pulse_id); + // vTaskDelay(10); + // cpg11_pulse_resume_by_pulse_id(p_pulse_genA[0].pulse_id); + // } for (;;) {