diff --git a/.vscode/settings.json b/.vscode/settings.json index 30b0640..e37bc0d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -113,7 +113,8 @@ "device_version_info_mgr.h": "c", "heart_wave_sample_service_cfg.h": "c", "filter.h": "c", - "filters.h": "c" + "filters.h": "c", + "nrfx_rtc.h": "c" }, "files.encoding": "gbk" } \ No newline at end of file diff --git a/app/config/sdk_config.h b/app/config/sdk_config.h index 12bab3d..c380b27 100644 --- a/app/config/sdk_config.h +++ b/app/config/sdk_config.h @@ -6130,7 +6130,7 @@ #ifndef WDT_CONFIG_RELOAD_VALUE -#define WDT_CONFIG_RELOAD_VALUE 5000 +#define WDT_CONFIG_RELOAD_VALUE 10000 #endif // WDT_CONFIG_IRQ_PRIORITY - Interrupt priority diff --git a/app/src/basic/watch_dog.c b/app/src/basic/watch_dog.c new file mode 100644 index 0000000..fb0f663 --- /dev/null +++ b/app/src/basic/watch_dog.c @@ -0,0 +1,17 @@ +/********************************************************************* + * INCLUDES + */ +#include "nrf_drv_wdt.h" +nrf_drv_wdt_channel_id m_channel_id; + +void wd_init() { + // WDT_CONFIG_RELOAD_VALUE 修改这个数值修改喂狗周期,单位ms + nrf_drv_wdt_config_t config = NRF_DRV_WDT_DEAFULT_CONFIG; + config.reload_value = WDT_CONFIG_RELOAD_VALUE; + ret_code_t err_code = nrf_drv_wdt_init(&config, NULL); + ZERROR_CHECK(err_code); + err_code = nrf_drv_wdt_channel_alloc(&m_channel_id); + ZERROR_CHECK(err_code); + nrf_drv_wdt_enable(); +} +void wd_feed() { nrfx_wdt_feed(); } \ No newline at end of file diff --git a/app/src/board/board.h b/app/src/board/board.h index 56124a0..1836f83 100644 --- a/app/src/board/board.h +++ b/app/src/board/board.h @@ -77,5 +77,3 @@ #define APP_LOW_BATTERY_WARNING_LIMIT 10 // 低电量事件上报阈值 #define BLE_UNCONNECTED_OVERTIME_S 300 // 蓝牙未连接_心跳超时判定时间 300s - -#define ENABLE_AUTO_STOP_WHEN_BLE_DISCONNECTED 1 // 蓝牙断开自动停止采集 \ No newline at end of file diff --git a/app/src/device_ctrl_service.c b/app/src/device_ctrl_service.c index f1ef22f..8bdf756 100644 --- a/app/src/device_ctrl_service.c +++ b/app/src/device_ctrl_service.c @@ -32,6 +32,7 @@ device_state_t DeviceCtrl_now_state(); static void state_machine_driver_tmr_cb(void* p_context) { // static app_event_t appevent; appevent.eventType = kevent_tmr_scheduler; + wd_feed(); AppEvent_pushEvent(&appevent); } /** @@ -237,12 +238,6 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { // ZLOGI("stop sample because low battery"); stopcapture = true; } -#ifdef ENABLE_AUTO_STOP_WHEN_BLE_DISCONNECTED - else if (zdatachannel_last_rx_data_haspassed_s() > BLE_UNCONNECTED_OVERTIME_S) { - ZLOGI("stop sample because ble unconnected"); - stopcapture = true; - } -#endif if (stopcapture) { // 关闭文件 @@ -269,6 +264,9 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { // void DeviceCtrl_startSample(int duration_s) { ZLOGI("start sample %d", duration_s); m_sample_duration_ms = duration_s * 1000; + if (duration_s == 0) { + m_sample_duration_ms = 2 * 60 * 1000; // 两分钟 + } static app_event_t event; event.eventType = kevent_start_sample_cmd_event; AppEvent_pushEvent(&event); @@ -319,6 +317,8 @@ void DeviceCtrl_init() { // 切换到待机状态 prvf_change_to_ready_state(); + wd_init(); + ZERROR_CHECK(app_timer_create(&m_state_machine_driver_tmr, APP_TIMER_MODE_REPEATED, state_machine_driver_tmr_cb)); ZERROR_CHECK(app_timer_start(m_state_machine_driver_tmr, APP_TIMER_TICKS(100), NULL)); // 200HZ采样 } diff --git a/app/src/heart_wave_sample_service.c b/app/src/heart_wave_sample_service.c index 6235ac7..2e46753 100644 --- a/app/src/heart_wave_sample_service.c +++ b/app/src/heart_wave_sample_service.c @@ -432,14 +432,14 @@ static void ads1293_sample_one_frame() { static uint32_t sample[6]; #if 1 - ads1293_read_ecgs(&m_ads1293_1, &sample[3]); + // ads1293_read_ecgs(&m_ads1293_1, &sample[3]); #if CHANNEL_NUM == 2 - ads1293_read_ecgs(&m_ads1293_0, &sample[0]); + // ads1293_read_ecgs(&m_ads1293_0, &sample[0]); #endif #endif - // ads1293_read_ecg(&m_ads1293_1, 1, &sample[SENSOR1_ID]); - // ads1293_read_ecg(&m_ads1293_1, 2, &sample[SENSOR2_ID]); - // ads1293_read_ecg(&m_ads1293_0, 1, &sample[SENSOR0_ID]); + ads1293_read_ecg(&m_ads1293_1, 1, &sample[SENSOR1_ID]); + ads1293_read_ecg(&m_ads1293_1, 2, &sample[SENSOR2_ID]); + ads1293_read_ecg(&m_ads1293_0, 1, &sample[SENSOR0_ID]); // medianFilter diff --git a/libznordic b/libznordic index f6a9d8d..2e93f83 160000 --- a/libznordic +++ b/libznordic @@ -1 +1 @@ -Subproject commit f6a9d8d2a92bb3a1ce00df2a316bd602bf579b20 +Subproject commit 2e93f83bd44b54f4b6bec2d338d674e7a884bd42