diff --git a/app/main.c b/app/main.c index 98a0903..9d05891 100644 --- a/app/main.c +++ b/app/main.c @@ -313,7 +313,7 @@ void main() { znordic_loop(); } #endif -#if 1 +#if 0 /******************************************************************************* * 3导联-ADS1293-测试 * *******************************************************************************/ @@ -321,7 +321,7 @@ void main() { static void test_tx_timer_cb(void* p_context) { static uint32_t data; data++; - ZLOGI("tim cb %d :%d", data,ThreeLeadECG_ready_pin_state_get()); + ZLOGI("tim cb %d :%d %d", data, ThreeLeadECG_ready_pin_state_get(), ThreeLeadECG_LineInputDet_get_state()); // ThreeLeadECG_sdcard_connect2_ext_usb_sdcard_driver_ic_reset(); } @@ -331,11 +331,11 @@ APP_TIMER_DEF(m_test_tx_timer); void main() { APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); - // ThreeLeadECG_sdcard_base_init(); znordic_init(); ThreeLeadECG_ecg_init(); + ThreeLeadECG_LineInputDet_init(); NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); ZERROR_CHECK(app_timer_create(&m_test_tx_timer, APP_TIMER_MODE_REPEATED, test_tx_timer_cb)); @@ -400,4 +400,32 @@ void main() { ZERROR_CHECK(app_timer_start(m_test_tx_timer, APP_TIMER_TICKS(100), NULL)); znordic_loop(); } +#endif + +#if 1 +/******************************************************************************* + * 3导联-flash测试 * + *******************************************************************************/ +static void test_tx_timer_cb(void* p_context) { + static uint32_t data; + data++; +} + +extern uint32_t g_nrf_log_tx_pin; +APP_TIMER_DEF(m_test_tx_timer); + +void main() { + APP_SCHED_INIT(APP_TIMER_SCHED_EVENT_DATA_SIZE, 20); + znordic_init(); + + NRF_LOG_INFO("compile time :%s %d", __TIME__, APP_TIMER_TICKS(100)); + NRF_LOG_INTERNAL_FLUSH(); + + ThreeLeadECG_sdcard_base_init(); + ThreeLeadECG_sdcard_mount(); + + 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(100), NULL)); + znordic_loop(); +} #endif \ No newline at end of file diff --git a/app/src/three_lead/three_lead_board.c b/app/src/three_lead/three_lead_board.c index 0779754..69e2de8 100644 --- a/app/src/three_lead/three_lead_board.c +++ b/app/src/three_lead/three_lead_board.c @@ -40,6 +40,8 @@ #define ADS1293_SPI_CS1_PIN 29 #define ADS1293_READY_PIN 31 +#define LINE_DET_PIN 10 + /******************************************************************************* * TOOLS * *******************************************************************************/ @@ -149,17 +151,17 @@ void ThreeLeadECG_sdcard_base_init() { // * @brief USBDRIVER_IC_RESET_PIN ctrl pin */ znrf_gpio_cfg_output(SDCARD_USBDRIVER_IC_RESET_PIN, NRF_GPIO_PIN_NOPULL); - nrf_gpio_pin_set(SDCARD_USBDRIVER_IC_RESET_PIN); + nrf_gpio_pin_write(SDCARD_USBDRIVER_IC_RESET_PIN, 1); /** * @brief 初始化 SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN */ znrf_gpio_cfg_output(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN, NRF_GPIO_PIN_NOPULL); - nrf_gpio_pin_clear(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN); // OE = 0 + nrf_gpio_pin_write(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN, 0); // OE = 0 /** * @brief SDCARD电源控制引脚 */ znrf_gpio_cfg_output(SDCARD_POWER_CTRL_PIN, NRF_GPIO_PIN_NOPULL); - nrf_gpio_pin_clear(SDCARD_POWER_CTRL_PIN); // POWER = 0 + nrf_gpio_pin_write(SDCARD_POWER_CTRL_PIN, 0); // POWER = 0 } void ThreeLeadECG_sdcard_connect2_ext_usb_sdcard_driver_ic_reset() { nrf_gpio_pin_clear(SDCARD_USBDRIVER_IC_RESET_PIN); @@ -167,7 +169,7 @@ void ThreeLeadECG_sdcard_connect2_ext_usb_sdcard_driver_ic_reset() { nrf_gpio_pin_set(SDCARD_USBDRIVER_IC_RESET_PIN); } void ThreeLeadECG_sdcard_connect2_ext_usb_sdcard_driver_ic(bool connect) { - if (connect) { + if (!connect) { nrf_gpio_pin_clear(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN); } else { nrf_gpio_pin_set(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN); @@ -214,7 +216,7 @@ NRF_BLOCK_DEV_SDC_DEFINE(m_block_dev_sdc, static FATFS fs; void sdcard_test_write_text() { -#define FILE_NAME "/5.TXT" +#define FILE_NAME "/6.TXT" static FIL file; uint32_t bytes_written; static DIR dir; @@ -243,22 +245,39 @@ void sdcard_test_write_text() { } } while (fno.fname[0]); NRF_LOG_RAW_INFO(""); + NRF_LOG_INFO("read from file " FILE_NAME "..."); + { + ff_result = f_open(&file, FILE_NAME, FA_READ); + if (ff_result == FR_OK) { + static char rxbuf[20] = {0}; + UINT rxsize; + ff_result = f_read(&file, rxbuf, 19, &rxsize); + if (ff_result != FR_OK) { + NRF_LOG_INFO("read failed\r\n."); + } else { + NRF_LOG_INFO("read %s(%d)", rxbuf, rxsize); + } + (void)f_close(&file); + } + } NRF_LOG_INFO("Writing to file " FILE_NAME "..."); - ff_result = f_open(&file, FILE_NAME, FA_CREATE_ALWAYS | FA_READ | FA_WRITE | FA_CREATE_NEW); - if (ff_result != FR_OK) { - NRF_LOG_INFO("Unable to open or create file: " FILE_NAME ". %d", ff_result); - return; - } + { + ff_result = f_open(&file, FILE_NAME, FA_CREATE_ALWAYS | FA_READ | FA_WRITE); + if (ff_result != FR_OK) { + NRF_LOG_INFO("Unable to open or create file: " FILE_NAME ". %d", ff_result); + return; + } - ff_result = f_write(&file, "iflytop", sizeof("iflytop") - 1, (UINT*)&bytes_written); - if (ff_result != FR_OK) { - NRF_LOG_INFO("Write failed\r\n."); - } else { - NRF_LOG_INFO("%d bytes written.", bytes_written); - } + ff_result = f_write(&file, "iflytop", sizeof("iflytop") - 1, (UINT*)&bytes_written); + if (ff_result != FR_OK) { + NRF_LOG_INFO("Write failed\r\n."); + } else { + NRF_LOG_INFO("%d bytes written.", bytes_written); + } - (void)f_close(&file); + (void)f_close(&file); + } } bool mountsuc = false; /** @@ -293,9 +312,9 @@ void ThreeLeadECG_sdcard_mount() { * 4. 初始化SPI引脚,驱动flash */ - // ThreeLeadECG_sdcard_flash_power_ctrl(false); - // ThreeLeadECG_sdcard_connect2_ext_usb_sdcard_driver_ic(false); - // ThreeLeadECG_sdcard_flash_power_ctrl(true); + nrf_gpio_pin_write(SDCARD_POWER_CTRL_PIN, 1); // 关 + nrf_gpio_pin_write(SDCARD_USBDRIVER_IC_JUNCTION_CTRL_NOE_PIN, 1); + nrf_gpio_pin_write(SDCARD_POWER_CTRL_PIN, 0); // 开 /** * @brief @@ -329,6 +348,7 @@ void ThreeLeadECG_sdcard_mount() { NRF_LOG_INFO("Mount failed."); return; } + ZLOGI("Mount success"); uint32_t blocks_per_mb = (1024uL * 1024uL) / m_block_dev_sdc.block_dev.p_ops->geometry(&m_block_dev_sdc.block_dev)->blk_size; uint32_t capacity = m_block_dev_sdc.block_dev.p_ops->geometry(&m_block_dev_sdc.block_dev)->blk_count / blocks_per_mb; @@ -408,4 +428,10 @@ void ThreeLeadECG_ecg_init() { revid = ads1293_spi_readreg(&m_ads1293_1, TI_ADS1293_REVID_REG); NRF_LOG_INFO("ads1293_1 revid: %d", revid); } -bool ThreeLeadECG_ready_pin_state_get() { return nrf_gpio_pin_read(ADS1293_READY_PIN); } +uint32_t ThreeLeadECG_ready_pin_state_get() { return nrf_gpio_pin_read(ADS1293_READY_PIN); } + +void ThreeLeadECG_LineInputDet_init() { + // LINE_DET_PIN + nrf_gpio_cfg_input(LINE_DET_PIN, NRF_GPIO_PIN_PULLUP); +} +uint32_t ThreeLeadECG_LineInputDet_get_state() { return nrf_gpio_pin_read(LINE_DET_PIN); } diff --git a/app/src/three_lead/three_lead_board.h b/app/src/three_lead/three_lead_board.h index ac9d1ac..1daa59e 100644 --- a/app/src/three_lead/three_lead_board.h +++ b/app/src/three_lead/three_lead_board.h @@ -45,5 +45,8 @@ void ThreeLeadECG_sdcard_umount(); /******************************************************************************* * ECG * *******************************************************************************/ -void ThreeLeadECG_ecg_init(); -bool ThreeLeadECG_ready_pin_state_get(); +void ThreeLeadECG_ecg_init(); +uint32_t ThreeLeadECG_ready_pin_state_get(); +// +void ThreeLeadECG_LineInputDet_init(); +uint32_t ThreeLeadECG_LineInputDet_get_state();