From: p15692025051 <846603105@qq.com> Date: Sat, 31 Aug 2024 04:29:27 +0000 (+0800) Subject: k18血压模组增加活体 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=bdd935540890d68f0635c07876412d44aed7c8a9;p=mirrors%2FASR3603_Z5.git k18血压模组增加活体 --- diff --git a/1.doc/K18/BLE_Watch/code/proj_main.c b/1.doc/K18/BLE_Watch/code/proj_main.c index 463b156b..643cd261 100644 --- a/1.doc/K18/BLE_Watch/code/proj_main.c +++ b/1.doc/K18/BLE_Watch/code/proj_main.c @@ -298,13 +298,16 @@ void init_sys_config(void) flash_read(CONFIG_SAVE_ADDR,sizeof(sys_config),(uint8_t *)&sys_config); //co_printf("init_sys_config:config_flag:0x%x\n",sys_config.config_flag); - if(sys_config.config_flag != 0xaa)//第一次开机,执行初始化 + if(sys_config.config_flag != 0xaa || sys_config.end_config_flag != 0xaa)//第一次开机,执行初始化 { co_printf("init_sys_config:init config_flag\n"); sys_config.config_flag = 0xaa; + sys_config.end_config_flag = 0xaa; memset(sys_config.HA_key_code,0,sizeof(sys_config.HA_key_code)); memset(sys_config.HA_req_code,0,sizeof(sys_config.HA_req_code)); memset(sys_config.IMEI,0,sizeof(sys_config.IMEI)); + memset(&sys_config.dev9202_wear_data,0,sizeof(sys_config.dev9202_wear_data)); + sys_config.dev9202_wear_data.BIO_HOLD_DROP_FLAG = 2; save_sys_config(); } } diff --git a/1.doc/K18/BLE_Watch/code/sensor_drive.c b/1.doc/K18/BLE_Watch/code/sensor_drive.c index 03ca466e..1c6eee2e 100644 --- a/1.doc/K18/BLE_Watch/code/sensor_drive.c +++ b/1.doc/K18/BLE_Watch/code/sensor_drive.c @@ -959,6 +959,7 @@ void sensor_INT(void) // gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6, 0); //中断信号使能 低电平 // co_delay_100us(2); } +extern VC9202WearChangeTypeDef vc9202_drv_wear_status_identify(VC9202WearInfoTypeDef *pwear, unsigned char env, unsigned char ps, unsigned short int bio); void sensor_init(void) { @@ -1048,6 +1049,7 @@ void sensor_init(void) gsensor_init();//gsensor初始化 NVIC_EnableIRQ(PMU_IRQn); vc9202_alg_results.wear_status = 1; + set_dev9202_wear_data(sys_config.dev9202_wear_data);//设置佩戴校准参数 pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //心率使能 防止漏电 pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 0); //血压失能 //测试代码 diff --git a/1.doc/K18/BLE_Watch/components/driver/driver_pmu.c b/1.doc/K18/BLE_Watch/components/driver/driver_pmu.c index 931c53e8..e205532f 100644 --- a/1.doc/K18/BLE_Watch/components/driver/driver_pmu.c +++ b/1.doc/K18/BLE_Watch/components/driver/driver_pmu.c @@ -931,7 +931,22 @@ __attribute__((weak)) __attribute__((section("ram_code"))) void onkey_isr_ram(vo __attribute__((weak)) void adc_set_ref_voltage(uint16_t ref_avdd, uint16_t ref_internal) { } - +__attribute__((weak)) __attribute__((section("ram_code"))) void i2s_isr_ram(void) +{ + volatile uint32_t data; + + // if(i2s_reg->status.rx_half_full) { + // for(uint32_t i=0; i<(I2S_FIFO_DEPTH/2); i++) { + // data = i2s_reg->data; + // } + // } + + // if(i2s_reg->status.tx_half_empty) { + // for(uint32_t i=0; i<(I2S_FIFO_DEPTH/2); i++) { + // i2s_reg->data = 0; + // } + // } +} __attribute__((section("ram_code"))) void pmu_isr_ram_C(unsigned int* hardfault_args) { uint16_t clr_bits=0; @@ -1040,7 +1055,7 @@ __attribute__((section("ram_code"))) void pmu_isr_ram_C(unsigned int* hardfault_ { //co_printf("%04x", ool_read16(PMU_REG_QDEC_CNTA_VALUE)); clr_bits |= PMU_ISR_QDEC_CLR; - qdec_isr_ram(); + //qdec_isr_ram(); } if(clr_bits) diff --git a/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvgui.Administrator b/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvgui.Administrator index 45230dfb..cc65b0ce 100644 --- a/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvgui.Administrator +++ b/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvgui.Administrator @@ -93,18 +93,18 @@ 0 1 - -1 - -1 + -32000 + -32000 -1 -1 - 112 - 442 - 1809 - 1023 + 180 + 362 + 1729 + 1091 @@ -134,7 +134,7 @@ 16 - 1C00000023010000B8040000B1010000 + F7020000A60000009307000034010000 @@ -150,7 +150,7 @@ 0 16 - 03000000660000004A0100007A020000 + 0300000066000000D00100007A020000 16 @@ -170,7 +170,7 @@ 0 16 - 03000000660000004A0100007A020000 + 0300000066000000D00100007A020000 16 @@ -450,7 +450,7 @@ 0 16 - 03000000660000004A0100007A020000 + 0300000066000000D00100007A020000 16 @@ -470,7 +470,7 @@ 0 16 - 03000000660000004A0100007A020000 + 0300000066000000D00100007A020000 16 @@ -1799,14 +1799,14 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000001C00000023010000B8040000B1010000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000C803000023010000B8040000F9020000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF4D0100004F0000005101000093020000010000000200001004000000010000006DFEFFFF4D030000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000028FFFFFF230100007500000067030000000000004F0000004D010000930200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000028FFFFFFE9020000B80400008B030000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000930200004705000097020000010000000100001004000000010000007FFDFFFF8C000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000028FFFFFF6B0300006F04000029040000000000009702000047050000550300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F7020000A60000009307000034010000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A3060000A6000000930700007C020000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD30100004F000000D70100009302000001000000020000100400000001000000B5FEFFFFF1030000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000003020000A600000050030000EA020000000000004F000000D3010000930200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000030200006C020000930700000E030000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000930200004705000097020000010000000100001004000000010000007FFDFFFF8C000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000003020000EE0200004A070000AC030000000000009702000047050000550300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2940 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000040000000000000000000000000000000000000100000001000000960000000200205000000000166F735F74696D65725F434D445F7570646174655F636296000000000000001400166F735F74696D65725F434D445F7570646174655F6362036D61630E534C5F535741595F53544154555313534C5F444952454354494F4E5F5354415455530B534C5F44495354414E4345096D6573685F696E697412646563696D616C5F706F696E745F7365656E0D75617274315F6973725F72616D0F696E7465726E616C5F6D616C6C6F630648415F42554618737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0A756172745F706172616D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2939 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000040000000000000000000000000000000000000100000001000000960000000200205000000000166F735F74696D65725F434D445F7570646174655F63629600000000000000140009636F5F7072696E7466166F735F74696D65725F434D445F7570646174655F6362036D61630E534C5F535741595F53544154555313534C5F444952454354494F4E5F5354415455530B534C5F44495354414E4345096D6573685F696E697412646563696D616C5F706F696E745F7365656E0D75617274315F6973725F72616D0F696E7465726E616C5F6D616C6C6F630648415F42554618737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 976 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008626C655F6D6573689600000000000000010008626C655F6D657368000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008626C655F6D6573689600000000000000010008626C655F6D657368000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 diff --git a/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvopt b/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvopt index e7da5506..0ff085e2 100644 --- a/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvopt +++ b/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvopt @@ -415,7 +415,7 @@ driver - 0 + 1 0 0 0 @@ -450,18 +450,6 @@ 0 0 0 - ..\components\driver\driver_i2s.c - driver_i2s.c - 0 - 0 - - - 6 - 21 - 1 - 0 - 0 - 0 ..\components\driver\driver_iic.c driver_iic.c 0 @@ -469,7 +457,7 @@ 6 - 22 + 21 1 0 0 @@ -481,7 +469,7 @@ 6 - 23 + 22 1 0 0 @@ -493,19 +481,7 @@ 6 - 24 - 1 - 0 - 0 - 0 - ..\components\driver\driver_pmu_qdec.c - driver_pmu_qdec.c - 0 - 0 - - - 6 - 25 + 23 1 0 0 @@ -517,7 +493,7 @@ 6 - 26 + 24 1 0 0 @@ -529,7 +505,7 @@ 6 - 27 + 25 1 0 0 @@ -541,7 +517,7 @@ 6 - 28 + 26 1 0 0 @@ -553,7 +529,7 @@ 6 - 29 + 27 1 0 0 @@ -573,7 +549,7 @@ 0 7 - 30 + 28 1 0 0 @@ -585,7 +561,7 @@ 7 - 31 + 29 5 0 0 @@ -605,7 +581,7 @@ 0 8 - 32 + 30 4 0 0 @@ -617,7 +593,7 @@ 8 - 33 + 31 4 0 0 @@ -629,7 +605,7 @@ 8 - 34 + 32 4 0 0 @@ -641,7 +617,7 @@ 8 - 35 + 33 4 0 0 @@ -653,7 +629,7 @@ 8 - 36 + 34 1 0 0 @@ -665,7 +641,7 @@ 8 - 37 + 35 1 0 0 @@ -677,7 +653,7 @@ 8 - 38 + 36 1 0 0 @@ -689,7 +665,7 @@ 8 - 39 + 37 1 0 0 @@ -701,7 +677,7 @@ 8 - 40 + 38 4 0 0 diff --git a/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvproj b/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvproj index 648d3cd3..7e74e63a 100644 --- a/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvproj +++ b/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvproj @@ -542,11 +542,6 @@ 1 ..\components\driver\driver_exti.c - - driver_i2s.c - 1 - ..\components\driver\driver_i2s.c - driver_iic.c 1 @@ -562,11 +557,6 @@ 1 ..\components\driver\driver_pmu.c - - driver_pmu_qdec.c - 1 - ..\components\driver\driver_pmu_qdec.c - driver_rtc.c 1 diff --git a/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_common.h b/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_common.h index 6161f02e..833d750c 100644 --- a/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_common.h +++ b/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_common.h @@ -32,7 +32,7 @@ ***************************************************************************/ #define VC9202_CFG_WEAR_DETECTION (FUNC_ENABLE) // FUNC_DISABLE FUNC_ENABLE #define VC9202_CFG_WEAR_DEFAULT_STATUS (WEAR_IS_HOLD) //1 is default wear,0 is default not wear WEAR_IS_HOLD WEAR_IS_DROP -#define VC9202_CFG_WEAR_BIO_EN (FUNC_DISABLE) +#define VC9202_CFG_WEAR_BIO_EN (FUNC_ENABLE) #define VC9202_CFG_WEAR_ALG_EN (FUNC_DISABLE) //开启心率摘下功能,必须开启满足(ATC|BIO)为真 #define VC9202_CFG_WEAR_ACT_EN (FUNC_DISABLE) #define VC9202_CFG_WEAR_THRESHOLD_EN (FUNC_ENABLE) //绝对阈值宏开关 @@ -44,8 +44,8 @@ #define VC9202_CFG_WEAR_PARAM_PSIN (100) #define VC9202_CFG_WEAR_PARAM_ENVMAX (128) //8*16 #define VC9202_CFG_WEAR_PARAM_ENVMIN (64) //4*16 -#define VC9202_CFG_WEAR_PARAM_BIOIN (40) - +//#define VC9202_CFG_WEAR_PARAM_BIOIN (40) +extern unsigned char VC9202_CFG_WEAR_PARAM_BIOIN; #define VC9202_CFG_PS_SLOT_CUR (0x3A) /* 0x5A */ #define VC9202_CFG_PS_SLOT_RES (0x47) diff --git a/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_driver.c b/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_driver.c index 0be5526b..c02505d7 100644 --- a/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_driver.c +++ b/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_driver.c @@ -14,11 +14,13 @@ #include "stdio.h" #include "string.h" #include "stdlib.h" +#include "uart.h" +unsigned char VC9202_CFG_WEAR_PARAM_BIOIN =30; /* static wear status declaration */ static int bio_result = VC9202_BIO_STA_NONE; static WearStatusTypeDef alg_wear_status = WEAR_STA_HOLD; static unsigned int gsnesor_axis_diff = 0; -static VC9202WearInfoTypeDef dev9202_wear = {0}; +VC9202WearInfoTypeDef dev9202_wear = {0}; /* static adjust data declaration */ static VC9202AdjustSlotTypeDef dev9202_adjust[3] = {0}; static unsigned char ppg_mark[128 / 2] = {0}; @@ -173,74 +175,134 @@ static unsigned char vc9202_drv_calibration_osc_clk(void) ps_value ps采样值 * @retval bio结果 */ -static int vc9202_drv_calc_biology_sense(unsigned short int bio_value, unsigned char ps_value, unsigned char env) +static unsigned char calc_ps = 0; +static unsigned short int calc_bio = 0; +int Bio_Diff_Value = 0; +int vc9202_drv_calc_biology_sense(unsigned short int bio_value, unsigned char ps_value, unsigned char env) { - static unsigned char calc_ps = 0; - static unsigned short int calc_bio = 0; - static int Bio_Diff_Value = 0; - int ret = 0; + + //int ret = 0; + // + // if (bio_value) + // { + // calc_bio = bio_value; + // Bio_Diff_Value = abs(Bio_Old_Value - calc_bio); + // Bio_Old_Value = calc_bio; + // } + // if (ps_value) + // { + // calc_ps = ps_value; + // } + // if ((calc_ps < 100) && (env > 4)) + // { + // if (Bio_Diff_Value < VC9202_CFG_WEAR_PARAM_BIOIN * 0.2) + // { + // Bio_Max_Value = calc_bio; + // Bio_Max_Diff_Value = Bio_Max_Value - (VC9202_CFG_WEAR_PARAM_BIOIN * 0.8); + // Bio_Min_Diff_Value = Bio_Max_Value - (VC9202_CFG_WEAR_PARAM_BIOIN * 1.5); + // } + // } + // if (Bio_Max_Diff_Value) + // { + // if ((calc_bio > Bio_Max_Diff_Value) && (Bio_Diff_Value < VC9202_CFG_WEAR_PARAM_BIOIN * 0.2)) + // { + // Bio_HOLD_cnt++; + // if (Bio_HOLD_cnt > 4) + // { + // BIO_HOLD_DROP_FLAG = 1; + // } + // } + // else if (calc_bio < Bio_Min_Diff_Value) + // { + // Bio_cnt++; + // if (Bio_cnt > 2) + // { + // BIO_HOLD_DROP_FLAG = 2; + // } + // } + // else + // { + // Bio_cnt = 0; + // Bio_HOLD_cnt = 0; + // BIO_HOLD_DROP_FLAG = 0; + // } + // } + // ret = f_BIOdetect(calc_bio, calc_ps, VC9202_CFG_WEAR_PARAM_PS); + // if (VC9202_BIO_STA_HOLD == ret) + // { + // vc9202_drv_set_algo_wear_status(WEAR_STA_HOLD); /* bio */ + // bio_result = VC9202_BIO_STA_HOLD; + // } + // else if (VC9202_BIO_STA_DROP == ret) + // { + // bio_result = VC9202_BIO_STA_DROP; + // } if (bio_value) { - calc_bio = bio_value; - Bio_Diff_Value = abs(Bio_Old_Value - calc_bio); - Bio_Old_Value = calc_bio; - } - if (ps_value) - { - calc_ps = ps_value; - } - if ((calc_ps < 100) && (env > 4)) - { - if (Bio_Diff_Value < VC9202_CFG_WEAR_PARAM_BIOIN * 0.2) - { - Bio_Max_Value = calc_bio; - Bio_Max_Diff_Value = Bio_Max_Value - (VC9202_CFG_WEAR_PARAM_BIOIN * 0.8); - Bio_Min_Diff_Value = Bio_Max_Value - (VC9202_CFG_WEAR_PARAM_BIOIN * 1.5); - } - } - if (Bio_Max_Diff_Value) - { - if ((calc_bio > Bio_Max_Diff_Value) && (Bio_Diff_Value < VC9202_CFG_WEAR_PARAM_BIOIN * 0.2)) - { - Bio_HOLD_cnt++; - if (Bio_HOLD_cnt > 4) - { - BIO_HOLD_DROP_FLAG = 1; - } - } - else if (calc_bio < Bio_Min_Diff_Value) - { - Bio_cnt++; - if (Bio_cnt > 2) - { - BIO_HOLD_DROP_FLAG = 2; - } - } - else - { - Bio_cnt = 0; - Bio_HOLD_cnt = 0; - BIO_HOLD_DROP_FLAG = 0; - } + Bio_Diff_Value = abs(sys_config.dev9202_wear_data.calc_bio - bio_value); } - ret = f_BIOdetect(calc_bio, calc_ps, VC9202_CFG_WEAR_PARAM_PS); - if (VC9202_BIO_STA_HOLD == ret) + if (Bio_Diff_Value/2 > VC9202_CFG_WEAR_PARAM_BIOIN) { vc9202_drv_set_algo_wear_status(WEAR_STA_HOLD); /* bio */ bio_result = VC9202_BIO_STA_HOLD; } - else if (VC9202_BIO_STA_DROP == ret) + else { bio_result = VC9202_BIO_STA_DROP; } + co_printf("vc9202_drv_calc_biology_sense calc_bio:%d,bio_value:%d,Bio_Diff_Value:%d,enable_bio:%d!! \n\r", + sys_config.dev9202_wear_data.calc_bio,bio_value,Bio_Diff_Value,dev9202_info.enable_bio); return bio_result; } +void get_dev9202_wear_data(VC9202WearCalibratorData *dev9202_wear_data) +{ + // unsigned char calc_ps ; + // unsigned short int calc_bio ; + // int Bio_Diff_Value ; + // int Bio_Max_Value ; + // int Bio_Max_Diff_Value ; + // int Bio_Min_Diff_Value ; + // int Bio_Old_Value ; + // uint8_t Bio_cnt ; + // uint8_t Bio_HOLD_cnt ; + // uint8_t BIO_HOLD_DROP_FLAG; + dev9202_wear_data->calc_ps = calc_ps; + dev9202_wear_data->calc_bio = calc_bio; + dev9202_wear_data->Bio_Diff_Value = Bio_Diff_Value; + dev9202_wear_data->Bio_Max_Value = Bio_Max_Value; + dev9202_wear_data->Bio_Max_Diff_Value = Bio_Max_Diff_Value; + dev9202_wear_data->Bio_Min_Diff_Value = Bio_Min_Diff_Value; + dev9202_wear_data->Bio_Old_Value = Bio_Old_Value; + dev9202_wear_data->Bio_cnt = Bio_cnt; + dev9202_wear_data->Bio_HOLD_cnt = Bio_HOLD_cnt; + dev9202_wear_data->BIO_HOLD_DROP_FLAG = BIO_HOLD_DROP_FLAG; + // co_printf("get_dev9202_wear_data:\r\ncalc_ps:%d,calc_bio:%d,Bio_Diff_Value:%d,Bio_Max_Value:%d\r\n",calc_ps,calc_bio,Bio_Diff_Value,Bio_Max_Value); + // co_printf("Bio_Max_Diff_Value:%d,Bio_Min_Diff_Value:%d,Bio_Old_Value:%d,Bio_cnt:%d\r\n",Bio_Max_Diff_Value,Bio_Min_Diff_Value,Bio_Old_Value,Bio_cnt); + // co_printf("Bio_HOLD_cnt:%d,BIO_HOLD_DROP_FLAG:%d\r\n",Bio_HOLD_cnt,BIO_HOLD_DROP_FLAG); +} +void set_dev9202_wear_data(VC9202WearCalibratorData dev9202_wear_data) +{ + + calc_ps = dev9202_wear_data.calc_ps ; + calc_bio = dev9202_wear_data.calc_bio ; + Bio_Diff_Value = dev9202_wear_data.Bio_Diff_Value ; + Bio_Max_Value = dev9202_wear_data.Bio_Max_Value; + Bio_Max_Diff_Value = dev9202_wear_data.Bio_Max_Diff_Value ; + Bio_Min_Diff_Value = dev9202_wear_data.Bio_Min_Diff_Value; + Bio_Old_Value = dev9202_wear_data.Bio_Old_Value ; + Bio_cnt = dev9202_wear_data.Bio_cnt; + Bio_HOLD_cnt = dev9202_wear_data.Bio_HOLD_cnt ; + BIO_HOLD_DROP_FLAG = dev9202_wear_data.BIO_HOLD_DROP_FLAG; + // co_printf("set_dev9202_wear_data:\r\ncalc_ps:%d,calc_bio:%d,Bio_Diff_Value:%d,Bio_Max_Value:%d\r\n",calc_ps,calc_bio,Bio_Diff_Value,Bio_Max_Value); + // co_printf("Bio_Max_Diff_Value:%d,Bio_Min_Diff_Value:%d,Bio_Old_Value:%d,Bio_cnt:%d\r\n",Bio_Max_Diff_Value,Bio_Min_Diff_Value,Bio_Old_Value,Bio_cnt); + // co_printf("Bio_HOLD_cnt:%d,BIO_HOLD_DROP_FLAG:%d\r\n",Bio_HOLD_cnt,BIO_HOLD_DROP_FLAG); +} /** * @brief 佩戴检测过程及状态 * @param *pwear-佩戴结构体,env-环境光,ps-ps值,bio-活体值 * @retval 识别改变结果 */ -static VC9202WearChangeTypeDef vc9202_drv_wear_status_identify(VC9202WearInfoTypeDef *pwear, unsigned char env, unsigned char ps, unsigned short int bio) +VC9202WearChangeTypeDef vc9202_drv_wear_status_identify(VC9202WearInfoTypeDef *pwear, unsigned char env, unsigned char ps, unsigned short int bio) { VC9202WearChangeTypeDef ret_change = WEAR_NO_CHANGE; int ret_bio_algo = VC9202_BIO_STA_NONE; diff --git a/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_driver.h b/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_driver.h index 6f888e11..c10f95d2 100644 --- a/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_driver.h +++ b/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_driver.h @@ -179,6 +179,21 @@ typedef struct unsigned short biovalue_now[2]; unsigned short biovalue_gap[2]; } VC9202TestInfoTypeDef; - +//做校准,每次开机用这个参数 +typedef struct +{ + unsigned char calc_ps ; + unsigned short int calc_bio ; + int Bio_Diff_Value ; + int Bio_Max_Value ; + int Bio_Max_Diff_Value ; + int Bio_Min_Diff_Value ; + int Bio_Old_Value ; + uint8_t Bio_cnt ; + uint8_t Bio_HOLD_cnt ; + uint8_t BIO_HOLD_DROP_FLAG; +} VC9202WearCalibratorData; +void set_dev9202_wear_data(VC9202WearCalibratorData dev9202_wear_data); +void get_dev9202_wear_data(VC9202WearCalibratorData *dev9202_wear_data); #endif diff --git a/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_user.c b/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_user.c index b8e2981c..8c03bca0 100644 --- a/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_user.c +++ b/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_user.c @@ -316,6 +316,7 @@ unsigned char vc9202_usr_get_wear_status(void) { unsigned char sta = 0; WearStatusTypeDef retSta = vc9202_drv_get_wear_status(); + co_printf("vc9202_usr_get_wear_status retSta:%d!! \n\r",retSta); if( WEAR_STA_DROP == retSta ) { sta = 0; @@ -552,6 +553,23 @@ static void factory_test_function( SamplingDataTypeDef *pdata ) // /* compare abs(bio0,bio1) */ // unsigned short int bio0 = pdata->bio_val_o; // unsigned short int bio1 = pdata->bio_val_o; + static int count = 0; + static short int bio1 = 0; + + count ++; + if(count >= 21 || count ==9) + { + count = 10; + if(pdata->bio_val_o > bio1 || count == 0)//保存校准数据 + { + get_dev9202_wear_data(&sys_config.dev9202_wear_data);//获取校准参数 + sys_config.dev9202_wear_data.calc_bio = pdata->bio_val_o; + save_sys_config(); + bio1 = pdata->bio_val_o; + } + } + //co_printf("factory_test_function bio_val_o:%d!! \n\r",pdata->bio_val_o); + } static void fpc_test_function(SamplingDataTypeDef *pdata) { @@ -680,6 +698,7 @@ static short int alg_calculate_hrv_handler( short int last_hr_val, SamplingDataT } unsigned int yyl_time = 0; extern char yyl_close_flag ; +extern int Bio_Diff_Value ; void vc9202_usr_interrupt_handler( AlgoSportMode hr_alg_mode, unsigned char spo2_alg_mode ) { //unsigned char wear_status = WEAR_STA_NONE; @@ -847,9 +866,14 @@ void vc9202_usr_interrupt_handler( AlgoSportMode hr_alg_mode, unsigned char spo2 } break; case WORK_MODE_FACTORY: + vc9202_alg_results.wear_status = vc9202_usr_get_wear_status(); factory_test_function(&data); - co_printf("WORK_MODE_FACTORY:apre_val[0]:%d,apre_val[1]:%d,aps_val:%d\n",data.apre_val[0],data.apre_val[1],data.aps_val); - UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"factory_data\":\"%d,%d,%d\"}\n",data.apre_val[0],data.apre_val[1],data.aps_val); + //co_printf("WORK_MODE_FACTORY:apre_val[0]:%d,apre_val[1]:%d,aps_val:%d\n",data.apre_val[0],data.apre_val[1],data.aps_val); + // UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"factory_data\":\"%d,%d,%d\"}\n" + // ,data.apre_val[0],data.apre_val[1],data.aps_val); + + UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"factory_data\":\"%d,%d,%d\"}\n" + ,Bio_Diff_Value,vc9202_alg_results.wear_status,data.bio_val_o);//data.aps_val); uart0_write_data(UART_send_buf,UART_send_buf_len); break; case WORK_MODE_FPC_TEST: diff --git a/1.doc/K18/BLE_Watch/keil/feedback.txt b/1.doc/K18/BLE_Watch/keil/feedback.txt index d4a24fd3..9f5b8a68 100644 --- a/1.doc/K18/BLE_Watch/keil/feedback.txt +++ b/1.doc/K18/BLE_Watch/keil/feedback.txt @@ -1,4 +1,4 @@ -;## ARM Linker, 5060960: Last Updated: Thu Jul 11 11:03:07 2024 +;## ARM Linker, 5060960: Last Updated: Sat Aug 31 11:54:14 2024 ;VERSION 0.2 ;FILE acpower_add_doublefre.o acPower_add_doublefre_init <= USED 0 @@ -79,6 +79,8 @@ attmdb_svc_visibility_set <= USED 0 ;FILE atts.o ;FILE average_value.o ;FILE biodetect_v14_1.o +f_BIOdetect <= USED 0 +f_TPjudge <= USED 0 version_info_Bio <= USED 0 ;FILE ble_simple_central.o __asm___20_ble_simple_central_c_4fde123a____REV16 <= USED 0 @@ -108,17 +110,6 @@ ext_int_get_src <= USED 0 ext_int_set_control <= USED 0 ext_int_set_port_mux <= USED 0 ext_int_set_type <= USED 0 -;FILE driver_i2s.o -__asm___12_driver_i2s_c_i2s_reg____REV16 <= USED 0 -__asm___12_driver_i2s_c_i2s_reg____REVSH <= USED 0 -__asm___12_driver_i2s_c_i2s_reg____RRX <= USED 0 -i2s_clear_fifo <= USED 0 -i2s_get_data <= USED 0 -i2s_get_int_status <= USED 0 -i2s_init <= USED 0 -i2s_send_data <= USED 0 -i2s_start <= USED 0 -i2s_stop <= USED 0 ;FILE driver_iic.o __asm___12_driver_iic_c_8d61f799____REV16 <= USED 0 __asm___12_driver_iic_c_8d61f799____REVSH <= USED 0 @@ -148,13 +139,6 @@ pmu_set_led2_as_pwm <= USED 0 pmu_set_led2_value <= USED 0 pmu_set_lp_clk_src <= USED 0 pmu_set_pin_to_CPU <= USED 0 -;FILE driver_pmu_qdec.o -pmu_qdec_autorest_cnt_flag <= USED 0 -pmu_qdec_init <= USED 0 -pmu_qdec_set_debounce_cnt <= USED 0 -pmu_qdec_set_irq_type <= USED 0 -pmu_qdec_set_pin <= USED 0 -pmu_qdec_set_threshold <= USED 0 ;FILE driver_rtc.o __asm___12_driver_rtc_c_rtc_init____REV16 <= USED 0 __asm___12_driver_rtc_c_rtc_init____REVSH <= USED 0 @@ -1001,6 +985,9 @@ __asm___11_user_task_c_d5bb1f8c____REV16 <= USED 0 __asm___11_user_task_c_d5bb1f8c____REVSH <= USED 0 __asm___11_user_task_c_d5bb1f8c____RRX <= USED 0 ;FILE vc9202_driver.o +__asm___15_vc9202_driver_c_677e08cb____REV16 <= USED 0 +__asm___15_vc9202_driver_c_677e08cb____REVSH <= USED 0 +__asm___15_vc9202_driver_c_677e08cb____RRX <= USED 0 vc9202_drv_electrostatic_death <= USED 0 vc9202_drv_get_chip_id <= USED 0 vc9202_drv_stop_sampling <= USED 0 diff --git a/1.doc/K18/BLE_Watch/keil/uart.c b/1.doc/K18/BLE_Watch/keil/uart.c index 1c57d299..6caf36c0 100644 --- a/1.doc/K18/BLE_Watch/keil/uart.c +++ b/1.doc/K18/BLE_Watch/keil/uart.c @@ -15,7 +15,7 @@ char send_step_data_flag= 0;//step数据标致位 char send_wear_data_flag= 0;//wear数据标致位 uint8_t *uart0_rivce_data = NULL; //uint8_t uart0_rivce_data[UART_READ_MAX] ; -char *Versions = "20240711-v0.5.3.041924"; +char *Versions = "20240831-v0.5.3.041924"; int uart0_data_len =0; static int32_t system_curr_time = 0;//设置时间的时候保存的系统运行时间 diff --git a/1.doc/K18/BLE_Watch/keil/uart.h b/1.doc/K18/BLE_Watch/keil/uart.h index 19054bc2..f9abfd97 100644 --- a/1.doc/K18/BLE_Watch/keil/uart.h +++ b/1.doc/K18/BLE_Watch/keil/uart.h @@ -42,6 +42,7 @@ #include "driver_system.h" #include "driver_pwm.h" #include "DRIVER_FLASH.H" +#include "vc9202_driver.h" #define UART_SEND_MAX 1024 #define UART_READ_MAX 512 extern char *Versions; @@ -51,6 +52,8 @@ typedef struct char HA_key_code[128+1]; char HA_req_code[128+1]; char IMEI[16]; + VC9202WearCalibratorData dev9202_wear_data; + char end_config_flag; }SysConfig; unsigned char crc8(uint8_t *vptr, uint8_t len); extern SysConfig sys_config;