Browse Source

硬件初步测试通过

master
zhaohe 1 year ago
parent
commit
ebeeb65c3c
  1. 5
      .vscode/settings.json
  2. 5
      README.md
  3. 6
      app/config/sdk_config.h
  4. 3
      app/src/board/board.h
  5. 9
      app/src/board/board_battery_state.c
  6. 4
      app/src/board/board_battery_state.h
  7. 8
      app/src/board/board_eeprom_driver.c
  8. 2
      app/src/board/board_eeprom_driver.h
  9. 64
      app/src/board/board_light_ctrl.c
  10. 11
      app/src/board/board_light_ctrl.h
  11. 4
      app/src/main.c
  12. 22
      app/src/one_conduction_main.c
  13. 2
      libznordic
  14. 2
      sdk

5
.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"
}

5
README.md

@ -46,10 +46,5 @@ V10:
```
单导:休眠527ua
日志打开:
sdk_config.h
#ifndef NRF_LOG_ENABLED
#define NRF_LOG_ENABLED 0
#endif
```

6
app/config/sdk_config.h

@ -7767,11 +7767,11 @@
// <e> 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
// <o> 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
// <o> NRF_LOG_BACKEND_UART_BAUDRATE - Default Baudrate
@ -7812,7 +7812,7 @@
// <e> NRF_LOG_ENABLED - nrf_log - Logger
//==========================================================
#ifndef NRF_LOG_ENABLED
#define NRF_LOG_ENABLED 0
#define NRF_LOG_ENABLED 1
#endif
// <h> Log message pool - Configuration of log message pool

3
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

9
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);
}
}

4
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();

8
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) {

2
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();

64
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);
}
}

11
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();

4
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();
/*******************************************************************************
* ÀÑÀ·þÎñ³õʼ»¯ *
*******************************************************************************/

22
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();
}

2
libznordic

@ -1 +1 @@
Subproject commit 2cd92d921156e9c84915520186fd611062537f65
Subproject commit e75326b00a9fd5f13aa20adf1f57c3e97c8c5b22

2
sdk

@ -1 +1 @@
Subproject commit 85cbd26451dabe41150d375647ccd23b85c42b00
Subproject commit 5d4b7977455415a88f3a8bd62dc4213f1edc0b37
Loading…
Cancel
Save