diff --git a/.vscode/settings.json b/.vscode/settings.json index 2095780..95c7c53 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -188,7 +188,10 @@ "qrs_time_domain_zh.h": "c", "board_eeprom_driver.h": "c", "board_power_mgr.h": "c", - "heart_ware_sample_data_mgr.h": "c" + "heart_ware_sample_data_mgr.h": "c", + "time.h": "c", + "nrf_gpio.h": "c", + "nrf_drv_clock.h": "c" }, "files.encoding": "gbk" } \ No newline at end of file diff --git a/README.md b/README.md index 30f1198..ddd0234 100644 --- a/README.md +++ b/README.md @@ -46,10 +46,5 @@ V10: ``` 单导:休眠527ua -日志打开: -sdk_config.h - #ifndef NRF_LOG_ENABLED - #define NRF_LOG_ENABLED 0 - #endif ``` \ No newline at end of file diff --git a/app/config/sdk_config.h b/app/config/sdk_config.h index 03e3122..25cdb27 100644 --- a/app/config/sdk_config.h +++ b/app/config/sdk_config.h @@ -7767,11 +7767,11 @@ // NRF_LOG_BACKEND_UART_ENABLED - nrf_log_backend_uart - Log UART backend //========================================================== #ifndef NRF_LOG_BACKEND_UART_ENABLED -#define NRF_LOG_BACKEND_UART_ENABLED 0 +#define NRF_LOG_BACKEND_UART_ENABLED 1 #endif // NRF_LOG_BACKEND_UART_TX_PIN - UART TX pin #ifndef NRF_LOG_BACKEND_UART_TX_PIN -#define NRF_LOG_BACKEND_UART_TX_PIN 2 +#define NRF_LOG_BACKEND_UART_TX_PIN 41 #endif // NRF_LOG_BACKEND_UART_BAUDRATE - Default Baudrate @@ -7812,7 +7812,7 @@ // NRF_LOG_ENABLED - nrf_log - Logger //========================================================== #ifndef NRF_LOG_ENABLED -#define NRF_LOG_ENABLED 0 +#define NRF_LOG_ENABLED 1 #endif // Log message pool - Configuration of log message pool diff --git a/app/src/board/board.h b/app/src/board/board.h index 634db12..937cc3a 100644 --- a/app/src/board/board.h +++ b/app/src/board/board.h @@ -17,7 +17,7 @@ #define BATTERY_ADC_PIN NRF_SAADC_INPUT_AIN3 #define BATTERY_ADC_CHANNEL 1 // 不重复即可 -#define BATTERY_CHARGE_DETECT_PIN 18 +#define BATTERY_CHARGE_DETECT_PIN 6 /** * @brief @@ -36,6 +36,7 @@ #define LED_GREEN_PIN 9 #define LED_BLUE_PIN 10 +#define LED_RED_PIN 39 #define HEART_WAVE_SAMPLE_TMR_INSTANCE 3 diff --git a/app/src/board/board_battery_state.c b/app/src/board/board_battery_state.c index 63f3490..c4ac135 100644 --- a/app/src/board/board_battery_state.c +++ b/app/src/board/board_battery_state.c @@ -89,3 +89,12 @@ int16_t BoardBattery_get_battery_level() { return battery_level_filter(percent_int); // return percent_int; } + +int16_t BoardBattery_selfTest() { + nrf_gpio_cfg_sense_input(BATTERY_CHARGE_DETECT_PIN, NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_LOW); + BoardAdc_load(); + while (true) { + ZLOGI_BLOCK("adc raw:%d %d", BoardBattery_get_adc_val(), nrf_gpio_pin_read(BATTERY_CHARGE_DETECT_PIN)); + nrf_delay_ms(1000); + } +} diff --git a/app/src/board/board_battery_state.h b/app/src/board/board_battery_state.h index 2fbe4ed..df44b76 100644 --- a/app/src/board/board_battery_state.h +++ b/app/src/board/board_battery_state.h @@ -15,3 +15,7 @@ int16_t BoardBattery_get_battery_level(); // 0->100 int16_t BoardBattery_get_charging_state(); int16_t BoardBattery_sence_gpio_init_before_sleep(); + + +int16_t BoardBattery_selfTest(); + diff --git a/app/src/board/board_eeprom_driver.c b/app/src/board/board_eeprom_driver.c index 0389556..30ce9da 100644 --- a/app/src/board/board_eeprom_driver.c +++ b/app/src/board/board_eeprom_driver.c @@ -86,7 +86,7 @@ void board_eeprom_write(uint32_t addr, const uint8_t *data, uint16_t len) { // /** * @brief 用来检测读取整个eeprom是否正常 */ -void SingleLeadECG_eeprom_wr_check() { +void board_eeprom_wr_check() { /** * @brief * 256kbyte @@ -113,10 +113,14 @@ void SingleLeadECG_eeprom_wr_check() { board_eeprom_read(addr, rdata_cache, EEPROM_PAGE); for (uint32_t j = 0; j < EEPROM_PAGE; j++) { if (rdata_cache[j] != (CHECKCODE)) { - ZLOGE("SingleLeadECG_eeprom_wr_check error %d %d %d", i, j, rdata_cache[j]); + ZLOGE("eeprom_wr_check error %d %d %d", i, j, rdata_cache[j]); } } } + ZLOGD_BLOCK("eeprom_wr_check ok,block here"); + while (true) { + nrf_delay_ms(10); + } } void board_eeprom_read(uint32_t add, uint8_t *data, uint16_t len) { diff --git a/app/src/board/board_eeprom_driver.h b/app/src/board/board_eeprom_driver.h index e549311..27910bc 100644 --- a/app/src/board/board_eeprom_driver.h +++ b/app/src/board/board_eeprom_driver.h @@ -16,3 +16,5 @@ void board_eeprom_init(); void board_eeprom_uninit(); void board_eeprom_write(uint32_t page, const uint8_t* data, uint16_t len); void board_eeprom_read(uint32_t add, uint8_t* data, uint16_t len); + +void board_eeprom_wr_check(); \ No newline at end of file diff --git a/app/src/board/board_light_ctrl.c b/app/src/board/board_light_ctrl.c index 1c87c0f..06c6a50 100644 --- a/app/src/board/board_light_ctrl.c +++ b/app/src/board/board_light_ctrl.c @@ -2,13 +2,14 @@ #include "board.h" #include "znordic.h" +#include "nrf_gpio.h" #define BLINK_CNT 1 #define BLINK_PERIOD_MS (100) #define QUICK_BLINK_PERIOD_MS (100) #define SLOW_BLINK_PERIOD_MS (2000) // LED_GREEN_PIN - +#if 0 typedef struct { nrf_drv_pwm_t driver; nrf_pwm_values_individual_t seq_values; @@ -150,3 +151,64 @@ void BoardLight_blockFlash(int times, int periodms) { nrf_delay_ms(periodms); } } + +#endif + +void BoardLight_Init() { + // LED_GREEN_PIN + // LED_BLUE_PIN + // LED_RED_PIN + + znrf_gpio_cfg_output(LED_GREEN_PIN, NRF_GPIO_PIN_NOPULL); + znrf_gpio_cfg_output(LED_BLUE_PIN, NRF_GPIO_PIN_NOPULL); + znrf_gpio_cfg_output(LED_RED_PIN, NRF_GPIO_PIN_NOPULL); +} +void BoardLight_load() {} +void BoardLight_unload() {} + +void BoardLight_setGreenLightState(bool state) { + if (state) { + nrf_gpio_pin_set(LED_GREEN_PIN); + } else { + nrf_gpio_pin_clear(LED_GREEN_PIN); + } +} +void BoardLight_setRedLightState(bool state) { + if (state) { + nrf_gpio_pin_set(LED_RED_PIN); + } else { + nrf_gpio_pin_clear(LED_RED_PIN); + } +} +void BoardLight_setBlueLightState(bool state) { + if (state) { + nrf_gpio_pin_set(LED_BLUE_PIN); + } else { + nrf_gpio_pin_clear(LED_BLUE_PIN); + } +} + +void BoardLight_toggleGreenLightState() {} + +void BoardLight_setGreenLightEffect(LightEffect_t effect) {} +void BoardLight_blockFlash(int times, int periodms) {} + +void BoardLight_selftest() { + BoardLight_Init(); + while (true) { + BoardLight_setGreenLightState(true); + nrf_delay_ms(1000); + BoardLight_setGreenLightState(false); + nrf_delay_ms(1000); + + BoardLight_setRedLightState(true); + nrf_delay_ms(1000); + BoardLight_setRedLightState(false); + nrf_delay_ms(1000); + + BoardLight_setBlueLightState(true); + nrf_delay_ms(1000); + BoardLight_setBlueLightState(false); + nrf_delay_ms(1000); + } +} diff --git a/app/src/board/board_light_ctrl.h b/app/src/board/board_light_ctrl.h index fe7231e..f307f28 100644 --- a/app/src/board/board_light_ctrl.h +++ b/app/src/board/board_light_ctrl.h @@ -17,8 +17,15 @@ void BoardLight_Init(); // main void BoardLight_load(); void BoardLight_unload(); -void BoardLight_setGreenLightState(bool state); // 尽量不要直接使用该函数 -void BoardLight_toggleGreenLightState(); // 尽量不要直接使用该函数 +void BoardLight_setGreenLightState(bool state); +void BoardLight_setRedLightState(bool state); +void BoardLight_setBlueLightState(bool state); + +void BoardLight_toggleGreenLightState(); + void BoardLight_setGreenLightEffect(LightEffect_t effect); void BoardLight_blockFlash(int times, int periodms); + + +void BoardLight_selftest(); diff --git a/app/src/main.c b/app/src/main.c index 5b25635..a949336 100644 --- a/app/src/main.c +++ b/app/src/main.c @@ -34,8 +34,8 @@ extern void one_conduction_main(); int main() { APP_SCHED_INIT(SCHED_MAX_EVENT_DATA_SIZE, 20); - znordic_init(); - NRF_LOG_INFO("compile time :%s", __TIME__); + znordic_init_without_wd(); + /******************************************************************************* * 蓝牙服务初始化 * *******************************************************************************/ diff --git a/app/src/one_conduction_main.c b/app/src/one_conduction_main.c index 0b9ea5b..11aab6f 100644 --- a/app/src/one_conduction_main.c +++ b/app/src/one_conduction_main.c @@ -155,6 +155,11 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { if (!p_event_data) return; app_event_t* p_event = (app_event_t*)p_event_data; + // BoardLight_blockFlash(3,100); + // ZLOGI("......"); + + // return; + if (ds_now_state() != kdevice_state_standby && // ds_now_state() != kdevice_state_charging && // ds_now_state() != kdevice_state_poweron // @@ -245,7 +250,6 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { } } } - #if 0 // 低电量,设备进入待机模式 else if (BoardBattery_get_battery_level() < APP_AUTO_STANDY_BATTERY_LEVEL && ds_cur_state_haspassed_ms() > 3000) { @@ -341,11 +345,11 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { if (p_event->eventType == kevent_capture_little_data_block_event) { // 单帧实时上报 ZASSERT(LITTLE_DATA_BLOCK_FRAME_NUM == 5); - ble_cmder_try_report_one_sample_data(p_event->val.little_data_block.frameIndex, // - p_event->val.little_data_block.data[0], // - p_event->val.little_data_block.data[1], // - p_event->val.little_data_block.data[2], // - p_event->val.little_data_block.data[3], // + ble_cmder_try_report_one_sample_data(p_event->val.little_data_block.frameIndex, // + p_event->val.little_data_block.data[0], // + p_event->val.little_data_block.data[1], // + p_event->val.little_data_block.data[2], // + p_event->val.little_data_block.data[3], // p_event->val.little_data_block.data[4]); } @@ -430,10 +434,15 @@ void one_conduction_main() { board_power_mgr_init(); board_power_mgr_main_power_supply_set(true); + // BoardBattery_selfTest(); + // BoardLight_selftest(); + BoardBattery_init(); BoardEcgSensor_init(); BoardLight_Init(); BoardBattery_load(); + + // power_on(); #if 0 if (BoardBattery_get_battery_level() < APP_WORK_BATTERY_LEVEL) { BoardLight_load(); @@ -452,5 +461,6 @@ void one_conduction_main() { ZERROR_CHECK(app_timer_start(m_state_machine_driver_tmr, APP_TIMER_TICKS(300), NULL)); state_machine__change_to_standby_state(); + // state_machine__change_to_poweroning_state(); znordic_loop(); } diff --git a/libznordic b/libznordic index 2cd92d9..e75326b 160000 --- a/libznordic +++ b/libznordic @@ -1 +1 @@ -Subproject commit 2cd92d921156e9c84915520186fd611062537f65 +Subproject commit e75326b00a9fd5f13aa20adf1f57c3e97c8c5b22 diff --git a/sdk b/sdk index 85cbd26..5d4b797 160000 --- a/sdk +++ b/sdk @@ -1 +1 @@ -Subproject commit 85cbd26451dabe41150d375647ccd23b85c42b00 +Subproject commit 5d4b7977455415a88f3a8bd62dc4213f1edc0b37