Browse Source

update

3lead_uart_test_ok_version
zhaohe 1 year ago
parent
commit
cc1fac3a01
  1. 359
      .vscode/c_cpp_properties.ble_c.json
  2. 160
      .vscode/c_cpp_properties.json
  3. 38
      app/main.c
  4. 4
      app/src/basic/ads1293/ads1293.c
  5. 2
      app/src/basic/ads1293/ads1293.h
  6. 148
      app/src/three_lead/ads_cfg.h
  7. 45
      app/src/three_lead/three_lead_board.c
  8. 3
      app/src/three_lead/three_lead_board.h
  9. 1743
      ble_app_uart_c/ble_app_uart_c_pca10100_s122.uvguix.h_zha
  10. 11
      ble_app_uart_c/main.c

359
.vscode/c_cpp_properties.ble_c.json

@ -0,0 +1,359 @@
{
"configurations": [
{
"name": "nrf52833_xxaa",
"includePath": [
"sdk\\components\\ble\\nrf_ble_gq\\",
"sdk\\components\\softdevice\\mbr\\headers\\",
"sdk\\components\\ble\\common\\",
"sdk\\components\\ble\\ble_db_discovery\\",
"sdk\\components\\toolchain\\cmsis\\include\\",
"ble_app_uart_c\\config",
"sdk\\components\\libraries\\util\\",
"sdk\\modules\\nrfx\\mdk\\",
"sdk\\components\\softdevice\\s140\\headers",
"ble_app_uart_c\\config",
"sdk\\components",
"sdk\\components\\ble\\ble_advertising",
"sdk\\components\\ble\\ble_db_discovery",
"sdk\\components\\ble\\ble_dtm",
"sdk\\components\\ble\\ble_racp",
"sdk\\components\\ble\\ble_services\\ble_ancs_c",
"sdk\\components\\ble\\ble_services\\ble_ans_c",
"sdk\\components\\ble\\ble_services\\ble_bas",
"sdk\\components\\ble\\ble_services\\ble_bas_c",
"sdk\\components\\ble\\ble_services\\ble_cscs",
"sdk\\components\\ble\\ble_services\\ble_cts_c",
"sdk\\components\\ble\\ble_services\\ble_dfu",
"sdk\\components\\ble\\ble_services\\ble_dis",
"sdk\\components\\ble\\ble_services\\ble_gls",
"sdk\\components\\ble\\ble_services\\ble_hids",
"sdk\\components\\ble\\ble_services\\ble_hrs",
"sdk\\components\\ble\\ble_services\\ble_hrs_c",
"sdk\\components\\ble\\ble_services\\ble_hts",
"sdk\\components\\ble\\ble_services\\ble_ias",
"sdk\\components\\ble\\ble_services\\ble_ias_c",
"sdk\\components\\ble\\ble_services\\ble_lbs",
"sdk\\components\\ble\\ble_services\\ble_lbs_c",
"sdk\\components\\ble\\ble_services\\ble_lls",
"sdk\\components\\ble\\ble_services\\ble_nus",
"sdk\\components\\ble\\ble_services\\ble_nus_c",
"sdk\\components\\ble\\ble_services\\ble_rscs",
"sdk\\components\\ble\\ble_services\\ble_rscs_c",
"sdk\\components\\ble\\ble_services\\ble_tps",
"sdk\\components\\ble\\common",
"sdk\\components\\ble\\nrf_ble_gatt",
"sdk\\components\\ble\\nrf_ble_gq",
"sdk\\components\\ble\\nrf_ble_qwr",
"sdk\\components\\ble\\nrf_ble_scan",
"sdk\\components\\ble\\peer_manager",
"sdk\\components\\boards",
"sdk\\components\\libraries\\atomic",
"sdk\\components\\libraries\\atomic_fifo",
"sdk\\components\\libraries\\balloc",
"sdk\\components\\libraries\\bootloader\\ble_dfu",
"sdk\\components\\libraries\\bsp",
"sdk\\components\\libraries\\button",
"sdk\\components\\libraries\\cli",
"sdk\\components\\libraries\\crc16",
"sdk\\components\\libraries\\crc32",
"sdk\\components\\libraries\\crypto",
"sdk\\components\\libraries\\csense",
"sdk\\components\\libraries\\csense_drv",
"sdk\\components\\libraries\\delay",
"sdk\\components\\libraries\\ecc",
"sdk\\components\\libraries\\experimental_section_vars",
"sdk\\components\\libraries\\experimental_task_manager",
"sdk\\components\\libraries\\fds",
"sdk\\components\\libraries\\fifo",
"sdk\\components\\libraries\\fstorage",
"sdk\\components\\libraries\\gfx",
"sdk\\components\\libraries\\gpiote",
"sdk\\components\\libraries\\hardfault",
"sdk\\components\\libraries\\hci",
"sdk\\components\\libraries\\led_softblink",
"sdk\\components\\libraries\\log",
"sdk\\components\\libraries\\log\\src",
"sdk\\components\\libraries\\low_power_pwm",
"sdk\\components\\libraries\\mem_manager",
"sdk\\components\\libraries\\memobj",
"sdk\\components\\libraries\\mpu",
"sdk\\components\\libraries\\mutex",
"sdk\\components\\libraries\\pwm",
"sdk\\components\\libraries\\pwr_mgmt",
"sdk\\components\\libraries\\queue",
"sdk\\components\\libraries\\ringbuf",
"sdk\\components\\libraries\\scheduler",
"sdk\\components\\libraries\\sdcard",
"sdk\\components\\libraries\\slip",
"sdk\\components\\libraries\\sortlist",
"sdk\\components\\libraries\\spi_mngr",
"sdk\\components\\libraries\\stack_guard",
"sdk\\components\\libraries\\strerror",
"sdk\\components\\libraries\\svc",
"sdk\\components\\libraries\\timer",
"sdk\\components\\libraries\\twi_mngr",
"sdk\\components\\libraries\\twi_sensor",
"sdk\\components\\libraries\\uart",
"sdk\\components\\libraries\\usbd",
"sdk\\components\\libraries\\usbd\\class\\audio",
"sdk\\components\\libraries\\usbd\\class\\cdc",
"sdk\\components\\libraries\\usbd\\class\\cdc\\acm",
"sdk\\components\\libraries\\usbd\\class\\hid",
"sdk\\components\\libraries\\usbd\\class\\hid\\generic",
"sdk\\components\\libraries\\usbd\\class\\hid\\kbd",
"sdk\\components\\libraries\\usbd\\class\\hid\\mouse",
"sdk\\components\\libraries\\usbd\\class\\msc",
"sdk\\components\\libraries\\util",
"sdk\\components\\nfc\\ndef\\conn_hand_parser",
"sdk\\components\\nfc\\ndef\\conn_hand_parser\\ac_rec_parser",
"sdk\\components\\nfc\\ndef\\conn_hand_parser\\ble_oob_advdata_parser",
"sdk\\components\\nfc\\ndef\\conn_hand_parser\\le_oob_rec_parser",
"sdk\\components\\nfc\\ndef\\connection_handover\\ac_rec",
"sdk\\components\\nfc\\ndef\\connection_handover\\ble_oob_advdata",
"sdk\\components\\nfc\\ndef\\connection_handover\\ble_pair_lib",
"sdk\\components\\nfc\\ndef\\connection_handover\\ble_pair_msg",
"sdk\\components\\nfc\\ndef\\connection_handover\\common",
"sdk\\components\\nfc\\ndef\\connection_handover\\ep_oob_rec",
"sdk\\components\\nfc\\ndef\\connection_handover\\hs_rec",
"sdk\\components\\nfc\\ndef\\connection_handover\\le_oob_rec",
"sdk\\components\\nfc\\ndef\\generic\\message",
"sdk\\components\\nfc\\ndef\\generic\\record",
"sdk\\components\\nfc\\ndef\\launchapp",
"sdk\\components\\nfc\\ndef\\parser\\message",
"sdk\\components\\nfc\\ndef\\parser\\record",
"sdk\\components\\nfc\\ndef\\text",
"sdk\\components\\nfc\\ndef\\uri",
"sdk\\components\\nfc\\platform",
"sdk\\components\\nfc\\t2t_lib",
"sdk\\components\\nfc\\t2t_parser",
"sdk\\components\\nfc\\t4t_lib",
"sdk\\components\\nfc\\t4t_parser\\apdu",
"sdk\\components\\nfc\\t4t_parser\\cc_file",
"sdk\\components\\nfc\\t4t_parser\\hl_detection_procedure",
"sdk\\components\\nfc\\t4t_parser\\tlv",
"sdk\\components\\softdevice\\common",
"sdk\\components\\softdevice\\s122\\headers",
"sdk\\components\\softdevice\\s122\\headers\\nrf52",
"sdk\\external\\fprintf",
"sdk\\external\\segger_rtt",
"sdk\\external\\utf_converter",
"sdk\\integration\\nrfx",
"sdk\\integration\\nrfx\\legacy",
"sdk\\modules\\nrfx",
"sdk\\modules\\nrfx\\drivers\\include",
"sdk\\modules\\nrfx\\hal",
"config",
"ble_app_uart_c",
"sdk\\modules\\nrfx\\soc",
"sdk\\modules\\nrfx\\drivers\\src",
"sdk\\modules\\nrfx\\drivers\\src\\prs"
],
"defines": [
"APP_TIMER_V2",
"APP_TIMER_V2_RTC1_ENABLED",
"BOARD_QING_FENG_NRF52833",
"CONFIG_GPIO_AS_PINRESET",
"FLOAT_ABI_HARD",
"NRF52833_XXAA",
"NRF_SD_BLE_API_VERSION=8",
"S122",
"SOFTDEVICE_PRESENT",
"__HEAP_SIZE=2048",
"__STACK_SIZE=2048",
"__CC_ARM",
"__arm__",
"__align(x)=",
"__ALIGNOF__(x)=",
"__alignof__(x)=",
"__asm(x)=",
"__forceinline=",
"__restrict=",
"__global_reg(n)=",
"__inline=",
"__int64=long long",
"__INTADDR__(expr)=0",
"__irq=",
"__packed=",
"__pure=",
"__smc(n)=",
"__svc(n)=",
"__svc_indirect(n)=",
"__svc_indirect_r7(n)=",
"__value_in_regs=",
"__weak=",
"__writeonly=",
"__declspec(x)=",
"__attribute__(x)=",
"__nonnull__(x)=",
"__register=",
"__breakpoint(x)=",
"__cdp(x,y,z)=",
"__clrex()=",
"__clz(x)=0U",
"__current_pc()=0U",
"__current_sp()=0U",
"__disable_fiq()=",
"__disable_irq()=",
"__dmb(x)=",
"__dsb(x)=",
"__enable_fiq()=",
"__enable_irq()=",
"__fabs(x)=0.0",
"__fabsf(x)=0.0f",
"__force_loads()=",
"__force_stores()=",
"__isb(x)=",
"__ldrex(x)=0U",
"__ldrexd(x)=0U",
"__ldrt(x)=0U",
"__memory_changed()=",
"__nop()=",
"__pld(...)=",
"__pli(...)=",
"__qadd(x,y)=0",
"__qdbl(x)=0",
"__qsub(x,y)=0",
"__rbit(x)=0U",
"__rev(x)=0U",
"__return_address()=0U",
"__ror(x,y)=0U",
"__schedule_barrier()=",
"__semihost(x,y)=0",
"__sev()=",
"__sqrt(x)=0.0",
"__sqrtf(x)=0.0f",
"__ssat(x,y)=0",
"__strex(x,y)=0U",
"__strexd(x,y)=0",
"__strt(x,y)=",
"__swp(x,y)=0U",
"__usat(x,y)=0U",
"__wfe()=",
"__wfi()=",
"__yield()=",
"__vfp_status(x,y)=0"
],
"intelliSenseMode": "${default}"
},
{
"name": "flash_s122_nrf52_8.0.0_softdevice",
"includePath": [
"ble_app_uart_c\\config",
"config",
"ble_app_uart_c",
"sdk\\components\\boards",
"sdk\\components\\libraries\\bsp",
"sdk\\external\\utf_converter",
"sdk\\components\\ble\\common",
"sdk\\components\\ble\\ble_db_discovery",
"sdk\\components\\ble\\nrf_ble_gatt",
"sdk\\components\\ble\\nrf_ble_gq",
"sdk\\components\\ble\\nrf_ble_scan",
"sdk\\integration\\nrfx\\legacy",
"sdk\\modules\\nrfx\\soc",
"sdk\\modules\\nrfx\\drivers\\src",
"sdk\\modules\\nrfx\\drivers\\src\\prs",
"sdk\\components\\libraries\\button",
"sdk\\components\\libraries\\util",
"sdk\\components\\libraries\\fifo",
"sdk\\components\\libraries\\scheduler",
"sdk\\components\\libraries\\timer",
"sdk\\components\\libraries\\uart",
"sdk\\components\\libraries\\hardfault",
"sdk\\components\\libraries\\atomic_fifo",
"sdk\\components\\libraries\\atomic",
"sdk\\components\\libraries\\balloc",
"sdk\\external\\fprintf",
"sdk\\components\\libraries\\memobj",
"sdk\\components\\libraries\\pwr_mgmt",
"sdk\\components\\libraries\\queue",
"sdk\\components\\libraries\\ringbuf",
"sdk\\components\\libraries\\experimental_section_vars",
"sdk\\components\\libraries\\sortlist",
"sdk\\components\\libraries\\strerror",
"sdk\\components\\libraries\\log\\src",
"sdk\\external\\segger_rtt",
"sdk\\components\\softdevice\\common"
],
"defines": [
"__HEAP_SIZE=2048",
"__STACK_SIZE=2048",
"__CC_ARM",
"__arm__",
"__align(x)=",
"__ALIGNOF__(x)=",
"__alignof__(x)=",
"__asm(x)=",
"__forceinline=",
"__restrict=",
"__global_reg(n)=",
"__inline=",
"__int64=long long",
"__INTADDR__(expr)=0",
"__irq=",
"__packed=",
"__pure=",
"__smc(n)=",
"__svc(n)=",
"__svc_indirect(n)=",
"__svc_indirect_r7(n)=",
"__value_in_regs=",
"__weak=",
"__writeonly=",
"__declspec(x)=",
"__attribute__(x)=",
"__nonnull__(x)=",
"__register=",
"__breakpoint(x)=",
"__cdp(x,y,z)=",
"__clrex()=",
"__clz(x)=0U",
"__current_pc()=0U",
"__current_sp()=0U",
"__disable_fiq()=",
"__disable_irq()=",
"__dmb(x)=",
"__dsb(x)=",
"__enable_fiq()=",
"__enable_irq()=",
"__fabs(x)=0.0",
"__fabsf(x)=0.0f",
"__force_loads()=",
"__force_stores()=",
"__isb(x)=",
"__ldrex(x)=0U",
"__ldrexd(x)=0U",
"__ldrt(x)=0U",
"__memory_changed()=",
"__nop()=",
"__pld(...)=",
"__pli(...)=",
"__qadd(x,y)=0",
"__qdbl(x)=0",
"__qsub(x,y)=0",
"__rbit(x)=0U",
"__rev(x)=0U",
"__return_address()=0U",
"__ror(x,y)=0U",
"__schedule_barrier()=",
"__semihost(x,y)=0",
"__sev()=",
"__sqrt(x)=0.0",
"__sqrtf(x)=0.0f",
"__ssat(x,y)=0",
"__strex(x,y)=0U",
"__strexd(x,y)=0",
"__strt(x,y)=",
"__swp(x,y)=0U",
"__usat(x,y)=0U",
"__wfe()=",
"__wfi()=",
"__yield()=",
"__vfp_status(x,y)=0"
],
"intelliSenseMode": "${default}"
}
],
"version": 4
}

160
.vscode/c_cpp_properties.json

@ -3,20 +3,18 @@
{
"name": "nrf52833_xxaa",
"includePath": [
"sdk\\components\\ble\\nrf_ble_gq\\",
"sdk\\components\\softdevice\\mbr\\headers\\",
"sdk\\components\\ble\\common\\",
"sdk\\components\\ble\\ble_db_discovery\\",
"sdk\\components\\toolchain\\cmsis\\include\\",
"ble_app_uart_c\\config",
"sdk\\components\\libraries\\util\\",
"sdk\\modules\\nrfx\\mdk\\",
"sdk\\components\\softdevice\\s140\\headers",
"ble_app_uart_c\\config",
"libznordic\\include",
"sdk/external/fatfs/src/",
"sdk/external/fatfs/src/",
"sdk/external/fatfs/port/",
"sdk/components/libraries/block_dev/sdc/",
"sdk/components/libraries/block_dev/",
"sdk\\config",
"app\\src",
"sdk\\components",
"sdk\\components\\ble\\ble_advertising",
"sdk\\components\\ble\\ble_db_discovery",
"sdk\\components\\ble\\ble_dtm",
"sdk\\components\\ble\\ble_link_ctx_manager",
"sdk\\components\\ble\\ble_racp",
"sdk\\components\\ble\\ble_services\\ble_ancs_c",
"sdk\\components\\ble\\ble_services\\ble_ans_c",
@ -43,13 +41,12 @@
"sdk\\components\\ble\\ble_services\\ble_tps",
"sdk\\components\\ble\\common",
"sdk\\components\\ble\\nrf_ble_gatt",
"sdk\\components\\ble\\nrf_ble_gq",
"sdk\\components\\ble\\nrf_ble_qwr",
"sdk\\components\\ble\\nrf_ble_scan",
"sdk\\components\\ble\\peer_manager",
"sdk\\components\\boards",
"sdk\\components\\libraries\\atomic",
"sdk\\components\\libraries\\atomic_fifo",
"sdk\\components\\libraries\\atomic_flags",
"sdk\\components\\libraries\\balloc",
"sdk\\components\\libraries\\bootloader\\ble_dfu",
"sdk\\components\\libraries\\bsp",
@ -133,8 +130,8 @@
"sdk\\components\\nfc\\t4t_parser\\hl_detection_procedure",
"sdk\\components\\nfc\\t4t_parser\\tlv",
"sdk\\components\\softdevice\\common",
"sdk\\components\\softdevice\\s122\\headers",
"sdk\\components\\softdevice\\s122\\headers\\nrf52",
"sdk\\components\\softdevice\\s140\\headers",
"sdk\\components\\softdevice\\s140\\headers\\nrf52",
"sdk\\external\\fprintf",
"sdk\\external\\segger_rtt",
"sdk\\external\\utf_converter",
@ -143,21 +140,24 @@
"sdk\\modules\\nrfx",
"sdk\\modules\\nrfx\\drivers\\include",
"sdk\\modules\\nrfx\\hal",
"config",
"ble_app_uart_c",
"app\\config\\",
"app\\config",
"app",
"sdk\\modules\\nrfx\\soc",
"sdk\\modules\\nrfx\\drivers\\src",
"sdk\\modules\\nrfx\\drivers\\src\\prs"
"sdk\\modules\\nrfx\\drivers\\src\\prs",
"sdk\\modules\\nrfx\\mdk\\",
"sdk\\components\\toolchain\\cmsis\\include\\"
],
"defines": [
"APP_TIMER_V2",
"APP_TIMER_V2_RTC1_ENABLED",
"BOARD_QING_FENG_NRF52833",
"BOARD_PCA10100",
"CONFIG_GPIO_AS_PINRESET",
"FLOAT_ABI_HARD",
"NRF52833_XXAA",
"NRF_SD_BLE_API_VERSION=8",
"S122",
"NRF_SD_BLE_API_VERSION=7",
"S140",
"SOFTDEVICE_PRESENT",
"__HEAP_SIZE=2048",
"__STACK_SIZE=2048",
@ -235,124 +235,6 @@
"__vfp_status(x,y)=0"
],
"intelliSenseMode": "${default}"
},
{
"name": "flash_s122_nrf52_8.0.0_softdevice",
"includePath": [
"ble_app_uart_c\\config",
"config",
"ble_app_uart_c",
"sdk\\components\\boards",
"sdk\\components\\libraries\\bsp",
"sdk\\external\\utf_converter",
"sdk\\components\\ble\\common",
"sdk\\components\\ble\\ble_db_discovery",
"sdk\\components\\ble\\nrf_ble_gatt",
"sdk\\components\\ble\\nrf_ble_gq",
"sdk\\components\\ble\\nrf_ble_scan",
"sdk\\integration\\nrfx\\legacy",
"sdk\\modules\\nrfx\\soc",
"sdk\\modules\\nrfx\\drivers\\src",
"sdk\\modules\\nrfx\\drivers\\src\\prs",
"sdk\\components\\libraries\\button",
"sdk\\components\\libraries\\util",
"sdk\\components\\libraries\\fifo",
"sdk\\components\\libraries\\scheduler",
"sdk\\components\\libraries\\timer",
"sdk\\components\\libraries\\uart",
"sdk\\components\\libraries\\hardfault",
"sdk\\components\\libraries\\atomic_fifo",
"sdk\\components\\libraries\\atomic",
"sdk\\components\\libraries\\balloc",
"sdk\\external\\fprintf",
"sdk\\components\\libraries\\memobj",
"sdk\\components\\libraries\\pwr_mgmt",
"sdk\\components\\libraries\\queue",
"sdk\\components\\libraries\\ringbuf",
"sdk\\components\\libraries\\experimental_section_vars",
"sdk\\components\\libraries\\sortlist",
"sdk\\components\\libraries\\strerror",
"sdk\\components\\libraries\\log\\src",
"sdk\\external\\segger_rtt",
"sdk\\components\\softdevice\\common"
],
"defines": [
"__HEAP_SIZE=2048",
"__STACK_SIZE=2048",
"__CC_ARM",
"__arm__",
"__align(x)=",
"__ALIGNOF__(x)=",
"__alignof__(x)=",
"__asm(x)=",
"__forceinline=",
"__restrict=",
"__global_reg(n)=",
"__inline=",
"__int64=long long",
"__INTADDR__(expr)=0",
"__irq=",
"__packed=",
"__pure=",
"__smc(n)=",
"__svc(n)=",
"__svc_indirect(n)=",
"__svc_indirect_r7(n)=",
"__value_in_regs=",
"__weak=",
"__writeonly=",
"__declspec(x)=",
"__attribute__(x)=",
"__nonnull__(x)=",
"__register=",
"__breakpoint(x)=",
"__cdp(x,y,z)=",
"__clrex()=",
"__clz(x)=0U",
"__current_pc()=0U",
"__current_sp()=0U",
"__disable_fiq()=",
"__disable_irq()=",
"__dmb(x)=",
"__dsb(x)=",
"__enable_fiq()=",
"__enable_irq()=",
"__fabs(x)=0.0",
"__fabsf(x)=0.0f",
"__force_loads()=",
"__force_stores()=",
"__isb(x)=",
"__ldrex(x)=0U",
"__ldrexd(x)=0U",
"__ldrt(x)=0U",
"__memory_changed()=",
"__nop()=",
"__pld(...)=",
"__pli(...)=",
"__qadd(x,y)=0",
"__qdbl(x)=0",
"__qsub(x,y)=0",
"__rbit(x)=0U",
"__rev(x)=0U",
"__return_address()=0U",
"__ror(x,y)=0U",
"__schedule_barrier()=",
"__semihost(x,y)=0",
"__sev()=",
"__sqrt(x)=0.0",
"__sqrtf(x)=0.0f",
"__ssat(x,y)=0",
"__strex(x,y)=0U",
"__strexd(x,y)=0",
"__strt(x,y)=",
"__swp(x,y)=0U",
"__usat(x,y)=0U",
"__wfe()=",
"__wfi()=",
"__yield()=",
"__vfp_status(x,y)=0"
],
"intelliSenseMode": "${default}"
}
],
"version": 4

38
app/main.c

@ -349,9 +349,9 @@ extern uint32_t g_nrf_log_tx_pin;
APP_TIMER_DEF(m_test_tx_timer);
static void zdatachanel_send_log(const char* fmt, ...) {
static char tx[256] = {0};
static char tx[256] = {0};
static uint16_t len = 0;
va_list args;
va_list args;
va_start(args, fmt);
len = vsprintf(tx, fmt, args);
@ -359,12 +359,37 @@ static void zdatachanel_send_log(const char* fmt, ...) {
va_end(args);
}
static const char* dumplodstate(uint16_t lodstate) {
static char buf[64];
memset(buf, 0, sizeof(buf));
/**
* @brief
* 1111_0000_0000_0000
*/
sprintf(buf, "%d%d%d%d_%d%d%d%d_%d%d%d%d_%d%d%d%d", //
lodstate >> 15 & 0x1, lodstate >> 14 & 0x1, lodstate >> 13 & 0x1, lodstate >> 12 & 0x1, //
lodstate >> 11 & 0x1, lodstate >> 10 & 0x1, lodstate >> 9 & 0x1, lodstate >> 8 & 0x1, //
lodstate >> 7 & 0x1, lodstate >> 6 & 0x1, lodstate >> 5 & 0x1, lodstate >> 4 & 0x1, //
lodstate >> 3 & 0x1, lodstate >> 2 & 0x1, lodstate >> 1 & 0x1, lodstate >> 0 & 0x1);
return buf;
}
static void test_tx_timer_cb(void* p_context) {
static uint32_t data;
data++;
zdatachanel_send_log("%d,%d,%d\n", data, data, data);
// static uint8_t tx[9] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09};
// uint16_t p_length = 9;
uint16_t val;
ThreeLeadECG_ads1293_get_lod_state(&val);
uint32_t sample0;
uint32_t sample1;
uint32_t sample2;
ThreeLeadECG_ads1293_sample(&sample0, &sample1, &sample2);
zdatachanel_send_log("%d,%d,%d\n", sample0, sample1, sample2);
// zdatachanel_send_log("%d,%d,%d\n", data, data, data);
// zdatachanel_send_log("%d %d %s\n", ThreeLeadECG_ready_pin_state_get(), ThreeLeadECG_LineInputDet_get_state(), dumplodstate(val));
// zdatachannel_data_send(tx, &p_length);
}
@ -414,6 +439,9 @@ void main() {
};
zble_module_init(&cfg);
ThreeLeadECG_ecg_init();
ThreeLeadECG_LineInputDet_init();
ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb));
ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(5), NULL));

4
app/src/basic/ads1293/ads1293.c

@ -29,6 +29,10 @@ uint8_t ads1293_spi_readreg(ads1293_t* ads, uint8_t addr) {
ads->spi_tx_rx(txcache, rxcache, 2);
return rxcache[1];
}
void ads1293_spi_writereg_and_readbak(ads1293_t* ads, uint8_t addr, uint8_t data, uint8_t* readbak) {
ads1293_spi_writereg(ads, addr, data);
*readbak = ads1293_spi_readreg(ads, addr);
}
void ads1293_spi_autoinc_writereg(ads1293_t* ads, uint8_t addr, uint8_t* data, uint8_t len) { //
len = len > 255 ? 255 : len;

2
app/src/basic/ads1293/ads1293.h

@ -105,10 +105,12 @@
typedef void (*ads1293_spi_tx_rx_t)(uint8_t* tx, uint8_t* rx, uint8_t len);
typedef struct {
ads1293_spi_tx_rx_t spi_tx_rx;
int id;
} ads1293_t;
void ads1293_spi_init(ads1293_t* ads, ads1293_spi_tx_rx_t spi_tx_rx);
void ads1293_spi_writereg_and_readbak(ads1293_t* ads, uint8_t addr, uint8_t data, uint8_t* readbak);
void ads1293_spi_writereg(ads1293_t* ads, uint8_t addr, uint8_t data);
uint8_t ads1293_spi_readreg(ads1293_t* ads, uint8_t addr);

148
app/src/three_lead/ads_cfg.h

@ -0,0 +1,148 @@
#pragma once
#include <stdint.h>
typedef struct {
uint8_t add;
uint8_t data;
} adscfg_t;
static adscfg_t ads0cfg[] = {
{0x00, 0x00}, //
{0x01, 0x0a}, //
{0x02, 0x1c}, //
{0x03, 0x00}, //
{0x04, 0x00}, //
{0x05, 0x00}, //
{0x06, 0x02}, //
{0x07, 0x0f}, //
{0x08, 0x13}, //
{0x09, 0x01}, //
{0x0a, 0x0f}, //
{0x0b, 0x00}, //
{0x0c, 0x04}, //
{0x0d, 0x01}, //
{0x0e, 0x02}, //
{0x0f, 0x03}, //
{0x10, 0x00}, //
{0x11, 0x00}, //
{0x12, 0x05}, //
{0x13, 0x00}, //
{0x14, 0x00}, //
{0x15, 0x00}, //
{0x16, 0x00}, //
{0x17, 0x05}, //
{0x18, 0x00}, //
{0x19, 0x00}, //
{0x1a, 0x00}, //
{0x1b, 0x00}, //
{0x1c, 0x00}, //
{0x1d, 0x00}, //
{0x21, 0x02}, //
{0x22, 0x02}, //
{0x23, 0x02}, //
{0x24, 0x02}, //
{0x25, 0x00}, //
{0x26, 0x00}, //
{0x27, 0x08}, //
{0x28, 0x08}, //
{0x29, 0x00}, //
{0x2a, 0x00}, //
{0x2b, 0x00}, //
{0x2c, 0x00}, //
{0x2d, 0x00}, //
{0x2e, 0x33}, //
{0x2f, 0x30}, //
{0x30, 0x00}, //
{0x31, 0x00}, //
{0x32, 0x00}, //
{0x33, 0x00}, //
{0x34, 0x00}, //
{0x35, 0x00}, //
{0x36, 0x00}, //
{0x37, 0x00}, //
{0x38, 0x00}, //
{0x39, 0x00}, //
{0x3a, 0x00}, //
{0x3b, 0x00}, //
{0x3c, 0x00}, //
{0x3d, 0x00}, //
{0x3e, 0x00}, //
{0x3f, 0x00}, //
{0x40, 0xff}, //
{0x50, 0x00}, //
{0x60, 0x00}, //
{0x62, 0x00}, //
};
static adscfg_t ads1cfg[] = {
{0x00, 0x00}, //
{0x01, 0x0c}, //
{0x02, 0x14}, //
{0x03, 0x04}, //
{0x04, 0x00}, //
{0x05, 0x00}, //
{0x06, 0x02}, //
{0x07, 0x0f}, //
{0x08, 0x13}, //
{0x09, 0x01}, //
{0x0a, 0x0f}, //
{0x0b, 0x00}, //
{0x0c, 0x00}, //
{0x0d, 0x00}, //
{0x0e, 0x00}, //
{0x0f, 0x00}, //
{0x10, 0x01}, //
{0x11, 0x00}, //
{0x12, 0x07}, //
{0x13, 0x00}, //
{0x14, 0x00}, //
{0x15, 0x00}, //
{0x16, 0x00}, //
{0x17, 0x05}, //
{0x18, 0x00}, //
{0x19, 0x00}, //
{0x1a, 0x00}, //
{0x1b, 0x00}, //
{0x1c, 0x00}, //
{0x1d, 0x00}, //
{0x21, 0x02}, //
{0x22, 0x02}, //
{0x23, 0x02}, //
{0x24, 0x02}, //
{0x25, 0x00}, //
{0x26, 0x00}, //
{0x27, 0x08}, //
{0x28, 0x08}, //
{0x29, 0x00}, //
{0x2a, 0x00}, //
{0x2b, 0x00}, //
{0x2c, 0x00}, //
{0x2d, 0x00}, //
{0x2e, 0x33}, //
{0x2f, 0x30}, //
{0x30, 0x00}, //
{0x31, 0x00}, //
{0x32, 0x00}, //
{0x33, 0x00}, //
{0x34, 0x00}, //
{0x35, 0x00}, //
{0x36, 0x00}, //
{0x37, 0x00}, //
{0x38, 0x00}, //
{0x39, 0x00}, //
{0x3a, 0x00}, //
{0x3b, 0x00}, //
{0x3c, 0x00}, //
{0x3d, 0x00}, //
{0x3e, 0x00}, //
{0x3f, 0x00}, //
{0x40, 0xff}, //
{0x50, 0x00}, //
{0x60, 0x00}, //
{0x62, 0x00}, //
};

45
app/src/three_lead/three_lead_board.c

@ -391,8 +391,8 @@ void ThreeLeadECG_sdcard_umount() {
static const nrf_drv_spi_t spi = NRF_DRV_SPI_INSTANCE(2); /**< SPI instance. */
static ads1293_t m_ads1293_0;
static ads1293_t m_ads1293_1;
static ads1293_t m_ads1293_0; // U2
static ads1293_t m_ads1293_1; // U3
void ads1293_spi_tx_rx_0(uint8_t* tx, uint8_t* rx, uint8_t len) {
nrf_gpio_pin_clear(ADS1293_SPI_CS0_PIN);
@ -404,7 +404,31 @@ void ads1293_spi_tx_rx_1(uint8_t* tx, uint8_t* rx, uint8_t len) {
nrf_drv_spi_transfer(&spi, tx, len, rx, len);
nrf_gpio_pin_set(ADS1293_SPI_CS1_PIN);
}
void ads1293_spi_writereg_and_check(ads1293_t* ads, uint8_t addr, uint8_t data) {
uint8_t readbak = 0;
// readonly add
if (addr == 0x19 || addr == 0x1a || addr == 0x1b || addr == 0x1c || addr == 0x40 || addr == 0x30) {
return;
}
ads1293_spi_writereg_and_readbak(ads, addr, data, &readbak);
if (readbak != data) {
ZLOGE("ads_%d write %x failed,w:%x readbak:%x", ads->id, addr, data, readbak);
}
}
#include "ads_cfg.h"
void ThreeLeadECG_ecg_reg_config() {
for (uint16_t i = 0; i < ZARRAY_SIZE(ads0cfg); i++) {
ads1293_spi_writereg_and_check(&m_ads1293_0, ads0cfg[i].add, ads0cfg[i].data);
}
for (uint16_t i = 0; i < ZARRAY_SIZE(ads1cfg); i++) {
ads1293_spi_writereg_and_check(&m_ads1293_1, ads1cfg[i].add, ads1cfg[i].data);
}
}
void ThreeLeadECG_ads1293_start_convert() {
ads1293_spi_writereg(&m_ads1293_0, TI_ADS1293_CONFIG_REG, 0x01);
ads1293_spi_writereg(&m_ads1293_1, TI_ADS1293_CONFIG_REG, 0x01);
}
void ThreeLeadECG_ecg_init() {
nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG;
spi_config.ss_pin = NRF_DRV_SPI_PIN_NOT_USED; // NRF_DRV_SPI_PIN_NOT_USED
@ -424,7 +448,9 @@ void ThreeLeadECG_ecg_init() {
nrf_gpio_pin_set(ADS1293_SPI_CS1_PIN);
m_ads1293_0.spi_tx_rx = ads1293_spi_tx_rx_0;
m_ads1293_0.id = 0;
m_ads1293_1.spi_tx_rx = ads1293_spi_tx_rx_1;
m_ads1293_1.id = 1;
ads1293_spi_init(&m_ads1293_0, ads1293_spi_tx_rx_0);
ads1293_spi_init(&m_ads1293_1, ads1293_spi_tx_rx_1);
@ -433,26 +459,25 @@ void ThreeLeadECG_ecg_init() {
NRF_LOG_INFO("ads1293_0 revid: %d", revid);
revid = ads1293_spi_readreg(&m_ads1293_1, TI_ADS1293_REVID_REG);
NRF_LOG_INFO("ads1293_1 revid: %d", revid);
ThreeLeadECG_ecg_reg_config();
ThreeLeadECG_ads1293_start_convert();
}
uint32_t ThreeLeadECG_ready_pin_state_get() { return nrf_gpio_pin_read(ADS1293_READY_PIN); }
uint32_t ThreeLeadECG_ads1293_init() {}
void ThreeLeadECG_ads1293_start_convert() {
ads1293_spi_writereg(&m_ads1293_0, TI_ADS1293_CONFIG_REG, 0x01);
ads1293_spi_writereg(&m_ads1293_1, TI_ADS1293_CONFIG_REG, 0x01);
}
void ThreeLeadECG_ads1293_get_lod_state(uint16_t* state) { //
uint8_t lod0 = ads1293_read_error_lod(&m_ads1293_0);
uint8_t lod1 = ads1293_read_error_lod(&m_ads1293_1);
*state = (lod0) | (lod1 << 8);
*state = (lod0) | (lod1<<8);
}
void ThreeLeadECG_ads1293_sample(uint32_t* sample0, uint32_t* sample1, uint32_t* sample2) {
// *sample0
ads1293_read_ecg(&m_ads1293_0, 0, sample0);
ads1293_read_ecg(&m_ads1293_0, 1, sample1);
ads1293_read_ecg(&m_ads1293_0, 2, sample2);
ads1293_read_ecg(&m_ads1293_0, 1, sample0);
ads1293_read_ecg(&m_ads1293_1, 1, sample1);
ads1293_read_ecg(&m_ads1293_1, 2, sample2);
}
void ThreeLeadECG_LineInputDet_init() {

3
app/src/three_lead/three_lead_board.h

@ -47,6 +47,9 @@ void ThreeLeadECG_sdcard_umount();
*******************************************************************************/
void ThreeLeadECG_ecg_init();
uint32_t ThreeLeadECG_ready_pin_state_get();
void ThreeLeadECG_ads1293_get_lod_state(uint16_t* state);
//
void ThreeLeadECG_LineInputDet_init();
uint32_t ThreeLeadECG_LineInputDet_get_state();
void ThreeLeadECG_ads1293_sample(uint32_t* sample0, uint32_t* sample1, uint32_t* sample2);

1743
ble_app_uart_c/ble_app_uart_c_pca10100_s122.uvguix.h_zha
File diff suppressed because it is too large
View File

11
ble_app_uart_c/main.c

@ -234,10 +234,10 @@ static void ble_nus_chars_received_uart_print(uint8_t * p_data, uint16_t data_le
}
} while (ret_val == NRF_ERROR_BUSY);
}
if (p_data[data_len-1] == '\r')
{
while (app_uart_put('\n') == NRF_ERROR_BUSY);
}
// if (p_data[data_len-1] == '\r')
// {
// while (app_uart_put('\n') == NRF_ERROR_BUSY);
// }
if (ECHOBACK_BLE_UART_DATA)
{
// Send data back to the peripheral.
@ -338,6 +338,9 @@ static void ble_nus_c_evt_handler(ble_nus_c_t * p_ble_nus_c, ble_nus_c_evt_t con
case BLE_NUS_C_EVT_NUS_TX_EVT:
ble_nus_chars_received_uart_print(p_ble_nus_evt->p_data, p_ble_nus_evt->data_len);
break;
case BLE_NUS_C_EVT_NUS_TX_BLOCK_EVT:
ble_nus_chars_received_uart_print(p_ble_nus_evt->p_data, p_ble_nus_evt->data_len);
break;
case BLE_NUS_C_EVT_DISCONNECTED:
NRF_LOG_INFO("Disconnected.");

Loading…
Cancel
Save