From: p15692025051 <846603105@qq.com>
Date: Fri, 19 Apr 2024 10:23:58 +0000 (+0800)
Subject: 血压单片机代码
X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=ac093ec5fdc0c01140db5e709d09ba0480df7fcb;p=mirrors%2FASR3603_Z5.git
血压单片机代码
---
diff --git a/1.doc/K18/BLE_Watch/code/proj_main.c b/1.doc/K18/BLE_Watch/code/proj_main.c
index 501094bc..1597515c 100644
--- a/1.doc/K18/BLE_Watch/code/proj_main.c
+++ b/1.doc/K18/BLE_Watch/code/proj_main.c
@@ -37,6 +37,7 @@
#include "flash_usage_config.h"
#include "lib_hr.h"
#include "sensor_drive.h"
+#include "user_task.h"
SysConfig sys_config ={0};
void init_sys_config(void);
/*
@@ -132,7 +133,8 @@ void user_custom_parameters(void)
*/
__attribute__((section("ram_code"))) void user_entry_before_sleep_imp(void)
{
-
+ //pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1);//å¿çä½¿è½ é«çµå¹³
+ //co_printf("sleep\r\n");
}
/*********************************************************************
* @fn user_entry_after_sleep_imp
@@ -149,6 +151,11 @@ __attribute__((section("ram_code"))) void user_entry_before_sleep_imp(void)
*/
__attribute__((section("ram_code"))) void user_entry_after_sleep_imp(void)
{
+ system_set_port_pull(GPIO_PC6, true);
+ system_set_port_mux(GPIO_PORT_C, GPIO_BIT_6, PORTC6_FUNC_UART0_RXD);
+ system_set_port_mux(GPIO_PORT_C, GPIO_BIT_5, PORTC5_FUNC_UART0_TXD);
+ uart_init(UART0, BAUD_RATE_921600);
+ NVIC_EnableIRQ(UART0_IRQn);
/* set PA2 and PA3 for AT command interface */
system_set_port_pull(GPIO_PA2, true);
system_set_port_mux(GPIO_PORT_A, GPIO_BIT_2, PORTA2_FUNC_UART1_RXD);
@@ -156,7 +163,13 @@ __attribute__((section("ram_code"))) void user_entry_after_sleep_imp(void)
uart_init(UART1, BAUD_RATE_921600);
NVIC_EnableIRQ(UART1_IRQn);
+
+
+
NVIC_EnableIRQ(PMU_IRQn);
+ user_i2c1_init();
+ user_i2c0_init();
+ //co_printf("UP\r\n");
}
/*********************************************************************
@@ -199,7 +212,7 @@ void user_entry_before_ble_init(void)
system_set_port_pull(GPIO_PC6, true);
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_6, PORTC6_FUNC_UART0_RXD);
system_set_port_mux(GPIO_PORT_C, GPIO_BIT_5, PORTC5_FUNC_UART0_TXD);
- uart_init(UART0, BAUD_RATE_115200);
+ uart_init(UART0, BAUD_RATE_921600);
NVIC_EnableIRQ(UART0_IRQn);
co_printf("user_entry_before_ble_init!!!!!\n\n\n");
@@ -293,16 +306,18 @@ extern uint8_t *uart0_rivce_data ;
void user_entry_after_ble_init(void)
{
- co_printf("\r\n\r\n--------333333333init_sys_config--------\r\n\r\n");
+ co_printf("\r\n\r\n--------init_sys_config--------\r\n\r\n");
+ co_printf("\r\n\r\n--------%s--------\r\n\r\n",Versions);
+
//system_set_tx_power(RF_TX_POWER_POS_10dBm); //设置åå°åç为10DB
- system_sleep_disable(); //å
³ç¡ç
- simple_peripheral_init();//èçåå§å
- co_printf("heap:%d!!!!!!!!!!\n\n",os_get_free_heap_size());
+ //system_sleep_disable(); //å
³ç¡ç
+ //
+ //co_printf("heap:%d!!!!!!!!!!\n\n",os_get_free_heap_size());
UART_send_buf = os_malloc(UART_SEND_MAX+10);
memset(UART_send_buf,0,UART_SEND_MAX);
- co_printf("heap:%d!!!!!!!!!!\n\n",os_get_free_heap_size());
+ //co_printf("heap:%d!!!!!!!!!!\n\n",os_get_free_heap_size());
uart0_rivce_data = os_malloc(UART_READ_MAX+10);
- co_printf("heap:%d!!!!!!!!!!\n\n",os_get_free_heap_size());
+ //co_printf("heap:%d!!!!!!!!!!\n\n",os_get_free_heap_size());
if(UART_send_buf == NULL)
{
while(1)
@@ -320,38 +335,12 @@ void user_entry_after_ble_init(void)
mac_addr_t MAC_T = {0};
gap_address_get(&MAC_T);
co_printf("MAC: %X:%X:%X:%X:%X:%X\n",MAC_T.addr[0],MAC_T.addr[1],MAC_T.addr[2],MAC_T.addr[3],MAC_T.addr[4],MAC_T.addr[5]);
- timer_init(TIMER0,10000,TIMER_PERIODIC);//10ms
- timer_run(TIMER0);
- NVIC_EnableIRQ(TIMER0_IRQn);
-
+ // timer_init(TIMER0,10000,TIMER_PERIODIC);//10ms
+ // timer_run(TIMER0);
+ // NVIC_EnableIRQ(TIMER0_IRQn);
+ user_task_init();
sensor_init();
- os_user_loop_event_set(sensor_while);
+ //os_user_loop_event_set(sensor_while);
- // while(1)
- // {
- // sensor_INT();
- // }
- // while(1)
- // {
-
-
-
- // uart0_receive();//串å£0æ¥æ¶æ°æ®å¤ç
- // /////////////////////è¡åæµé/////////////////////////////
- // BP_test();
- // /////////////////////å¿çæµé/////////////////////////////
- // HRS_test();
- // /////////////////////å¿çå弿§æµé/////////////////////////////
- // HRV_test();
- // /////////////////////è¡æ°§æµé/////////////////////////////
- // SPO2_test();
- // /////////////////////ä¸å»æµé/////////////////////////////
- //YYL_test();
- // //////////////////////æ
绪æµé//////////////////////////////////
- //EMO_test();
-
- // co_delay_100us(500);
-
- // //co_printf("main:end\n");
- // }
+ system_sleep_enable();
}
diff --git a/1.doc/K18/BLE_Watch/code/sensor_drive.c b/1.doc/K18/BLE_Watch/code/sensor_drive.c
index 39718355..ed0cb6fd 100644
--- a/1.doc/K18/BLE_Watch/code/sensor_drive.c
+++ b/1.doc/K18/BLE_Watch/code/sensor_drive.c
@@ -33,7 +33,7 @@
#include "algo.h"
#include "yyl_pfev01.h"
#include "os_mem.h"
-
+#define VC9202_OPEN_IRQ 1
InitParamTypeDef pInit_Param={0};
char is_HA_activate = 0;
@@ -42,6 +42,7 @@ unsigned char *HA_BUF = NULL;//æç±ç®æ³åºåä¸å»ç®æ³åºç¼å²åº
int yyl_in_data_len = 0;
+char yyl_close_flag = 0;
extern char send_bp_data_flag;//åéè¡åæ°æ®æ è´ä½
extern char send_hrs_data_flag;//åéå¿çæ°æ®æ æ è´ä½
extern char send_hrv_data_flag;//åéå¿çå弿§æ è´ä½
@@ -67,40 +68,51 @@ extern int UART_send_buf_len ;
char task_sensor_evn_flag = 0;
os_event_t evt;
int os_msg_post_count = 0;
-unsigned char HR_IRQ_FLAG = 0;
+unsigned char USER_IRQ_FLAG = 0;
unsigned char BP_IRQ_FLAG = 0;
-void pmu_gpio_isr_ram(void) //䏿å¤ç
+__attribute__((section("ram_code"))) void pmu_gpio_isr_ram(void) //䏿å¤ç
{
- uint32_t pmu_int_pin_setting = ool_read32(PMU_REG_PORTA_TRIG_MASK);
+ //uint32_t pmu_int_pin_setting = ool_read32(PMU_REG_PORTA_TRIG_MASK);
uint32_t gpio_value = ool_read32(PMU_REG_GPIOA_V);
ool_write32(PMU_REG_PORTA_LAST, gpio_value);
- uint32_t tmp = gpio_value & pmu_int_pin_setting;
- uint32_t pressed_key = tmp^pmu_int_pin_setting;
- //co_printf("K:0x%08x\r\n", (pressed_key));//PD PC PB PA
- if((pressed_key&0x00800000)==0x00800000)//PC7//å¿ç䏿 ä½çµå¹³
- {
-
- //co_printf("PC7 = 0 \r\n");
- HR_IRQ_FLAG =1;
- }
- else if((pressed_key&0x80000000)==0x80000000)//PD7 //4G䏿1
- {
- //co_printf("PD7 = 0 \r\n");
- }
- else if((pressed_key&0x40000000)==0x40000000)//PD6 //4G䏿0
+ //uint32_t pressed_key = gpio_value & pmu_int_pin_setting;
+ //uint32_t pressed_key = tmp^pmu_int_pin_setting;
+ // uint32_t gpio_value = ool_read32(PMU_REG_GPIOA_V);
+ // ool_write32(PMU_REG_PORTD_LAST, gpio_value);
+ //co_printf("IRQ\r\n");
+ //co_printf("pressed_key:0x%x,gpio_value:0x%x,pmu_int_pin_setting:0x%x,GPIO_PC7:0x%x!!!!!!!!!\r\n", pressed_key,gpio_value,pmu_int_pin_setting,GPIO_PC7);//PD PC PB PA
+ if(USER_IRQ_FLAG == 1)
{
- //co_printf("PD6 = 0 \r\n");
+ //co_printf("IRQ_FLAG_ERROR\r\n");
+ return;
}
- else if((pressed_key&0x20000000)==0x20000000)//PD5//è¡å䏿
+ //if((pressed_key&GPIO_PC7)!=0)//PC7//å¿ç䏿 ä½çµå¹³
{
-
- }
- else if((pressed_key&0x10000000)==0x10000000)//PD4// ä¸è½´å°ç£ä¼ æå¨ä¸æ
- {
- //co_printf("PD4 = 0 \r\n");
+ //co_printf("PC7 = 0 \r\n");
+ user_event_send(USER_IRQ, NULL, NULL);//æ æ³å¤ææ¯åªä¸ªä¸æäº§çï¼åªè½é½æ§è¡
+ //co_printf("IRQ_ERROR1:gpio_value:0x%x\r\n",gpio_value);
+ USER_IRQ_FLAG =1;
}
+ // if((pressed_key&GPIO_PD7)==0)//PD7 //4G䏿1
+ // {
+ // user_event_send(USER_4G_IRQ, NULL, NULL);
+ // co_printf("PD7 = 0 \r\n");
+ // }
+ // if((pressed_key&GPIO_PD6)!=0)//PD6 //4G䏿0
+ // {
+ // //co_printf("PD6 = 0 \r\n");
+ // }
+ // if((pressed_key&GPIO_PD5)!=0)//PD5//è¡å䏿
+ // {
+ // //co_printf("PD5 = 0 \r\n");
+ // BP_IRQ_FLAG = 1;
+ // }
+ // if((pressed_key&GPIO_PD4)!=0)//PD4// ä¸è½´å°ç£ä¼ æå¨ä¸æ
+ // {
+ // //co_printf("PD4 = 0 \r\n");
+ // }
//NVIC_DisableIRQ(PMU_IRQn);
}
@@ -229,31 +241,7 @@ void gsensor_init(void)
//co_delay_100us(10000);
//}
}
- /////////////////////////////////////æ°æ®è½¬æ¢//////////////////////////////////
-//////////////////////////////////////åå
è¿å¶è½¬å符串ASCIIç ///////////////////////////////////////////////////////////////////////
-// char str_high=0,str_low=0;//uint8转å符é«ä½åä½ä½
-// void uintTOstr(char hex_data)//åå
è¿å¶è½¬å符串ASCIIç
-// {
-// str_high =(hex_data&0xF0)>>4;//åé«ä½ç4ä½
-// str_low =(hex_data&0x0F);//åä½ä½ç4ä½
-// if(str_high>=0)//0-9
-// {
-// if(str_high<=9)
-// str_high=str_high+48;
-// }
-// else if(str_high>=0x0A&&str_high<=0x0F)//A-F
-// str_high=str_high+55;
-// if(str_low>=0)//0-9
-// {
-// if(str_low<=9)
-// {
-// str_low=str_low+48;
-// }
-// }
-
-// else if(str_low>=0x0A&&str_low<=0x0F)//A-F
-// str_low=str_low+55;
-// }
+
int read_BP_data_len = 0;
@@ -300,7 +288,7 @@ char BP_test(void)
read_BP_data();//读è¡åæ°æ®
read_BP_data_len += 16;
- co_printf("read_BP_data_len :%d\n",read_BP_data_len);
+ co_printf("read_BP_data_len :%d\r\n",read_BP_data_len);
uart0_receive();//串å£0æ¥æ¶æ°æ®å¤ç
irq_flag=0;
}
@@ -422,6 +410,7 @@ char EMO_test(void)
return send_emo_data_flag;
}
+#if !VC9202_OPEN_IRQ //ä¸å¼ä¸æï¼æ»å¾ªç¯æµè¯
char HRS_test(void)
{
bool irq_flag=0;
@@ -541,18 +530,70 @@ char factory_test(void)
return send_factory_data_flag;
}
////////////////////////////////////äºå»é¾ä¸å»æµè¯////////////////////////////////////////////////
-unsigned int yyl_timer=0;
-void YYL_test_timer(void)
+char YYL_test(void)
+{
+ char irq_flag;
+
+ while(send_yyl_data_flag==1)//ä¸å»
+ {
+ while(gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==1&&send_yyl_data_flag)//çå¾
HR_INTåä½
+ {
+ //co_printf(" get_SPO2_waite \n");
+ //vcHr02IRQHandler();
+ irq_flag=1;
+ uart0_receive();//串å£0æ¥æ¶æ°æ®å¤ç
+ }
+ while((gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==0)&&irq_flag&&send_yyl_data_flag)//çå¾
HR_INTåé«
+ {
+ //å å¿çè·åå°æ°æ®éåºæµéæè
å è·åæææ°æ®æ¬¡æ°æè
æµè¯æ¶é´
+
+ //co_printf("YYL_test1!!\n");
+ vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);//éé¢è·åppgæ°æ®
+ uart0_receive();//串å£0æ¥æ¶æ°æ®å¤ç
+ if(yyl_in_data_len< YYL_PPG_TEST_LEN-1)
+ {
+
+
+ }else
+ {
+ // sensor_INT();//å¤éä¸ä½æº
+ // co_delay_10us(100*1000);
+ }
+ irq_flag = 0;
+ //co_printf("YYL_test2!!\n");
+ }
+ }
+
+
+ // YYL_test_count++;
+ // co_printf("os_msg_post_count:%d YYL_test_count:%d\n",os_msg_post_count,YYL_test_count);
+ return send_yyl_data_flag;
+}
+char temp_test(void)
{
- if(send_yyl_data_flag==2)
+ bool irq_flag=0;
+ while(send_temp_data_flag)
{
- if(yyl_timer>=30)
+ while(gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==1&&send_temp_data_flag)//çå¾
HR_INTåä½
+ {
+ //vcHr02IRQHandler();
+ co_delay_100us(10);
+ uart0_receive();//串å£0æ¥æ¶æ°æ®å¤ç
+ irq_flag = 1;
+ }
+ while((gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==0)&&irq_flag&&send_temp_data_flag)//çå¾
HR_INTåé« //é«çµå¹³è·åæ°æ®
{
- //YYL_open();
- yyl_timer=0;
+ vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);
+ uart0_receive();//串å£0æ¥æ¶æ°æ®å¤ç
+ irq_flag = 0;
}
}
+ return send_temp_data_flag;
}
+#endif
+
+////////////////////////////////////äºå»é¾ä¸å»æµè¯////////////////////////////////////////////////
+
int YYL_test_count = 0;
extern unsigned int yyl_time;
void YYL_out_data(void)
@@ -562,7 +603,12 @@ void YYL_out_data(void)
int pOutputData_len ;
int printf_len = 0;
co_printf("YYL_Output_PFE!!\n");
- if(yyl_in_data_len>= 3000-1)
+ // if(yyl_close_flag == 1 )//ä¸å»ç¶æå
³éï¼ä¸è¿å
+ // {
+ // co_printf("YYL_out_data return!!\n");
+ // return;
+ // }
+ if(yyl_in_data_len>= YYL_PPG_TEST_LEN-1)
{
co_printf("WORK_MODE_HRV hr:%d \nPPG:",vc9202_alg_results.hr_rate);
pOutputData = YYL_Output_PFE(&pOutputData_len);
@@ -597,7 +643,6 @@ void YYL_out_data(void)
if(count>=255)
break;
}
-
uart0_write_for_hci("\"}\n",sizeof("\"}\n"),NULL, NULL);
printf_len+=3;
co_printf("%s","\"}\n");
@@ -609,48 +654,9 @@ void YYL_out_data(void)
// pInit_Param.work_mode = WORK_MODE_NONE;
// vc9202_usr_init(&pInit_Param);
// send_yyl_data_flag=2;
- // yyl_timer=0;
+
//co_printf(" colse\n");
}
-}
-char YYL_test(void)
-{
- char irq_flag;
-
- while(send_yyl_data_flag==1)//ä¸å»
- {
- while(gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==1&&send_yyl_data_flag)//çå¾
HR_INTåä½
- {
- //co_printf(" get_SPO2_waite \n");
- //vcHr02IRQHandler();
- irq_flag=1;
- uart0_receive();//串å£0æ¥æ¶æ°æ®å¤ç
- }
- while((gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==0)&&irq_flag&&send_yyl_data_flag)//çå¾
HR_INTåé«
- {
- //å å¿çè·åå°æ°æ®éåºæµéæè
å è·åæææ°æ®æ¬¡æ°æè
æµè¯æ¶é´
-
- //co_printf("YYL_test1!!\n");
- vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);//éé¢è·åppgæ°æ®
- uart0_receive();//串å£0æ¥æ¶æ°æ®å¤ç
- if(yyl_in_data_len< 3000-1)
- {
-
-
- }else
- {
- // sensor_INT();//å¤éä¸ä½æº
- // co_delay_10us(100*1000);
- }
- irq_flag = 0;
- //co_printf("YYL_test2!!\n");
- }
- }
-
-
- // YYL_test_count++;
- // co_printf("os_msg_post_count:%d YYL_test_count:%d\n",os_msg_post_count,YYL_test_count);
- return send_yyl_data_flag;
}
////////////////////////////è·åæ¸©åº¦æ°æ®//////////////////////////////////////////////////////
int temper_data;
@@ -691,42 +697,7 @@ void get_tp_data()
co_delay_100us(500);
// }
}
-#if 0
-void temp_test(void)
-{
-
-
- //send_temp_data_flag=0;
- //å¼ä½©æ´
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 1); //å¿ç使è½
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //è¡å使è½
- //pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
- pInit_Param.work_mode = WORK_MODE_WEAR;
- vc9202_usr_init(&pInit_Param);
- vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);//䏿鿴æ°ä½©æ´ç¶æ
- get_tp_data();
- UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"temp_data\":\"");
- uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
- float shi=0.00,ge=0.00;
- shi=(temper_data/256)/10;
- ge=(temper_data/256)%10;
- uart_putc_noint(UART0,(int)(shi+48)); //0x30
- uart_putc_noint(UART0,(int)(ge+48));
- uart_putc_noint(UART0,'.');
- shi = temper_data;
- shi = shi/256;
- shi = (int)(shi*100)%100/10;
- uart_putc_noint(UART0,(int)shi+48); //0x30
- ge= temper_data;
- ge = ge/256;
- ge = (int)(ge*100)%100%10;
- uart_putc_noint(UART0,(int)ge+48); //0x30
- uart0_write_for_hci(uart0_residue_data, 3, NULL, NULL);
- //co_delay_100us(1000);
-
-}
-#else
void send_temp_data(void)
{
@@ -752,28 +723,8 @@ void send_temp_data(void)
//co_delay_100us(1000);
}
-char temp_test(void)
-{
- bool irq_flag=0;
- while(send_temp_data_flag)
- {
- while(gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==1&&send_temp_data_flag)//çå¾
HR_INTåä½
- {
- //vcHr02IRQHandler();
- co_delay_100us(10);
- uart0_receive();//串å£0æ¥æ¶æ°æ®å¤ç
- irq_flag = 1;
- }
- while((gpio_get_pin_value(GPIO_PORT_C, GPIO_BIT_7)==0)&&irq_flag&&send_temp_data_flag)//çå¾
HR_INTåé« //é«çµå¹³è·åæ°æ®
- {
- vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);
- uart0_receive();//串å£0æ¥æ¶æ°æ®å¤ç
- irq_flag = 0;
- }
- }
- return send_temp_data_flag;
-}
-#endif
+
+
void gsensor_test(void)
{
@@ -786,36 +737,23 @@ void gsensor_test(void)
"{\"cmd\":\"2\",\"gsensor_data\":\"%d,%d,%d\"}",
sl_x_dat[0],sl_y_dat[0],sl_z_dat[0]);
uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
- // for(uint8_t i=0;i<5;i++)//转ç
- // {
- // uintTOstr(sl_x_dat[i]);
- // uart_putc_noint(UART0,str_high);
- // uart_putc_noint(UART0,str_low);
- // }
- // uart_putc_noint(UART0,'/');
- // for(uint8_t i=0;i<5;i++)//转ç
- // {
- // uintTOstr(sl_y_dat[i]);
- // uart_putc_noint(UART0,str_high);
- // uart_putc_noint(UART0,str_low);
- // }
- // uart_putc_noint(UART0,'/');
- // for(uint8_t i=0;i<5;i++)//转ç
- // {
- // uintTOstr(sl_z_dat[i]);
- // uart_putc_noint(UART0,str_high);
- // uart_putc_noint(UART0,str_low);
- // }
- // uart0_write_for_hci(uart0_residue_data, 3, NULL, NULL);
-
+
}
void BP_open(void)//è¡å
{
+ user_i2c1_init();
+ system_set_port_mux(GPIO_PORT_D, GPIO_BIT_5, PORTD5_FUNC_D5);
+ gpio_set_dir(GPIO_PORT_D, GPIO_BIT_5, GPIO_DIR_IN);
+ system_set_port_pull(GPIO_PD5, true); //è®¾ç½®ä¸æ
+ //gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_5, 1); //è¡å䏿
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 1); //è¡å使è½
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 0); //å¿ç失è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 1); //è¡å使è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //å¿ç失è½
+
+ //pmu_port_wakeup_func_set(GPIO_PD5);//使è½è¡å䏿
+ pmu_port_wakeup_func_clear(GPIO_PC7);//使è½å¿ç䏿
co_delay_100us(5000);
IIC1_Start_I2c();
IIC1_Write_One_Byte(0x0A);
@@ -827,12 +765,15 @@ void BP_open(void)//è¡å
send_bp_data_flag = 1;
read_BP_data_len =0;
co_printf(" BP_open \n");
+ user_event_send(USER_EVT_OPEN_BP, NULL, NULL);
+
}
void EMO_open(void)//æ
绪
{
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 1); //è¡å使è½
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 0); //å¿ç失è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 1); //è¡å使è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //å¿ç失è½
+ //pmu_port_wakeup_func_set(GPIO_PD5);//使è½
co_delay_100us(5000);
IIC1_Start_I2c();
IIC1_Write_One_Byte(0x0A);
@@ -860,12 +801,26 @@ void EMO_open(void)//æ
绪
co_printf(" EMO_open \n");
}
+static os_timer_t YYL_timer = {0};
+void YYL_timer_handle(void *arg)//1åéå¼å§ä¸æ¬¡
+{
+ if(send_yyl_data_flag == 0)
+ {
+ co_printf(" YYL_timer_handle return \n");
+ return;
+ }
+ yyl_close_flag = 0;
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //å¿ç使è½
+ pInit_Param.work_mode = WORK_MODE_HRV;
+ vc9202_usr_init(&pInit_Param);
+ yyl_in_data_len = 0;
+}
void YYL_open(void)//ä¸å»
{
-
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 1); //å¿ç使è½
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //è¡å使è½
- //pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
+ yyl_close_flag = 0;
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //å¿ç使è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 0); //è¡å使è½
+ pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
pInit_Param.work_mode = WORK_MODE_HRV;
vc9202_usr_init(&pInit_Param);
if(HA_BUF != NULL)
@@ -876,15 +831,23 @@ void YYL_open(void)//ä¸å»
HA_BUF = os_malloc(HA_BUF_LEN);
if(HA_BUF == NULL)
{
- while(1)
- {
- co_printf(" YYL_open malloc error!!!!!\n");
- co_delay_10us(100*1000);
- }
+ // while(1)
+ // {
+ co_printf(" YYL_open malloc error!!!!!\n");
+ // co_delay_10us(100*1000);
+ // }
}
YYL_Init_PFE( HA_BUF, HA_BUF_LEN);//ä¸å»åå§å
send_yyl_data_flag = 1;
+ if(YYL_timer.timer_id == 0)
+ {
+ os_timer_init(&YYL_timer, YYL_timer_handle, NULL);
+ os_timer_start(&YYL_timer, 60*1000, true);
+ }
+
co_printf(" YYL_open \n");
+
+ yyl_in_data_len = 0;
//init_algorithm(HA_BUF, sizeof(HA_BUF));
}
@@ -892,9 +855,9 @@ void YYL_open(void)//ä¸å»
void HRS_open(void)//å¿ç
{
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 1); //å¿ç使è½
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //è¡å使è½
- //pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //å¿ç使è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 0); //è¡å使è½
+ pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
pInit_Param.work_mode = WORK_MODE_HR;
vc9202_usr_init(&pInit_Param);
send_hrs_data_flag = 1;
@@ -905,9 +868,9 @@ void HRS_open(void)//å¿ç
void SPO2_open(void)//è¡æ°§
{
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 1); //å¿ç使è½
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //è¡å使è½
- //pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //å¿ç使è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 0); //è¡å使è½
+ pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
pInit_Param.work_mode = WORK_MODE_SPO2;
vc9202_usr_init(&pInit_Param);
send_spo2_data_flag = 1;
@@ -918,9 +881,9 @@ void SPO2_open(void)//è¡æ°§
void temp_open(void)
{
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 1); //å¿ç使è½
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //è¡å使è½
- //pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //å¿ç使è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 0); //è¡å使è½
+ pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
pInit_Param.work_mode = WORK_MODE_WEAR; // WORK_MODE_TEMPERATURE;
vc9202_usr_init(&pInit_Param);
send_temp_data_flag = 1;
@@ -930,9 +893,9 @@ void temp_open(void)
void wear_open(void)//佩æ´
{
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 1); //å¿ç使è½
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //è¡å使è½
- //pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //å¿ç使è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 0); //è¡å使è½
+ pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
pInit_Param.work_mode = WORK_MODE_WEAR;
vc9202_usr_init(&pInit_Param);
send_wear_data_flag = 1;
@@ -943,9 +906,9 @@ void wear_open(void)//佩æ´
void factory_open(void)//工忍¡å¼
{
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 1); //å¿ç使è½
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //è¡å使è½
- //pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1); //å¿ç使è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 0); //è¡å使è½
+ pmu_port_wakeup_func_set(GPIO_PC7);//使è½å¿ç䏿
pInit_Param.work_mode = WORK_MODE_FACTORY;
vc9202_usr_init(&pInit_Param);
send_factory_data_flag = 1;
@@ -953,6 +916,10 @@ void factory_open(void)//工忍¡å¼
//vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);
}
+void OTA_open(void)
+{
+ simple_peripheral_init();//èçåå§å
+}
void sensor_close(void)
{
pInit_Param.work_mode = WORK_MODE_NONE;
@@ -967,49 +934,58 @@ void sensor_close(void)
send_sleep_data_flag=0;//åésleepæ°æ®æ è´ä½
send_step_data_flag=0;//åéstepæ°æ®æ è´ä½
send_wear_data_flag=0;//åéwearæ°æ®æ è´ä½
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 0); //å¿çä½¿è½ ä½çµå¹³
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //è¡å使è½
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 0); //å¿çä½¿è½ ä½çµå¹³
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1), 0); //è¡å使è½
pmu_port_wakeup_func_clear(GPIO_PC7);//失è½ä¸æGPIO䏿
+ pmu_port_wakeup_func_clear(GPIO_PD5);//失è½ä¸æGPIO䏿
if(HA_BUF != NULL)
{
os_free(HA_BUF);
HA_BUF = NULL;
}
+ if(YYL_timer.timer_id != 0)
+ os_timer_stop(&YYL_timer);
co_printf(" sensor_close \n");
}
+
void sensor_while(void)
{
uart0_receive();
//factory_open();
- //if(HR_IRQ_FLAG == 1)
+#if VC9202_OPEN_IRQ
+ if(USER_IRQ_FLAG == 1)
{
- //co_printf("sensor_while:HR_IRQ_FLAG:%d BP_IRQ_FLAG:%d\n",HR_IRQ_FLAG,BP_IRQ_FLAG);
- //HR_IRQ_FLAG = 0;
- /////////////////////å¿çæµé/////////////////////////////
- HRS_test();
- // /////////////////////å¿çå弿§æµé/////////////////////////////
- HRV_test();
- // /////////////////////è¡æ°§æµé/////////////////////////////
- SPO2_test();
- // /////////////////////ä¸å»æµé/////////////////////////////
- YYL_test();
- // /////////////////////ä½©æ´æ¨¡å¼æ¨¡å¼/////////////////////////////
- wear_test();
- // /////////////////////工忍¡å¼/////////////////////////////
- factory_test();
-
- temp_test();
+ USER_IRQ_FLAG = 0;
+ vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);
+ //system_sleep_enable();
}
+#else
+ /////////////////////å¿çæµé/////////////////////////////
+ HRS_test();
+ // /////////////////////å¿çå弿§æµé/////////////////////////////
+ HRV_test();
+ // /////////////////////è¡æ°§æµé/////////////////////////////
+ SPO2_test();
+ // /////////////////////ä¸å»æµé/////////////////////////////
+ YYL_test();
+ // /////////////////////ä½©æ´æ¨¡å¼æ¨¡å¼/////////////////////////////
+ wear_test();
+ // /////////////////////工忍¡å¼/////////////////////////////
+ factory_test();
+
+ temp_test();
+#endif
+
//if(BP_IRQ_FLAG == 1)
{
- //co_printf("sensor_while:HR_IRQ_FLAG:%d BP_IRQ_FLAG:%d\n",HR_IRQ_FLAG,BP_IRQ_FLAG);
- //BP_IRQ_FLAG = 0;
+ //co_printf("sensor_while:USER_IRQ_FLAG:%d BP_IRQ_FLAG:%d\r\n",USER_IRQ_FLAG,BP_IRQ_FLAG);
+ BP_IRQ_FLAG = 0;
EMO_test();
BP_test();
}
- YYL_test_timer();
+ //YYL_test_timer();
// pmu_port_wakeup_func_set(GPIO_PC7|GPIO_PD4|GPIO_PD5|GPIO_PD6|GPIO_PD7);//GPIO䏿
// NVIC_EnableIRQ(PMU_IRQn);
@@ -1017,10 +993,10 @@ void sensor_while(void)
//产ç䏿ï¼åè¯ä¸ä½æºææ°æ®
void sensor_INT(void)
{
- gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6, 1);
- co_delay_100us(2);
- gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6, 0); //ä¸æä¿¡å·ä½¿è½ ä½çµå¹³
- co_delay_100us(2);
+ // gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6, 1);
+ // co_delay_100us(2);
+ // gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6, 0); //ä¸æä¿¡å·ä½¿è½ ä½çµå¹³
+ // co_delay_100us(2);
}
void sensor_init(void)
{
@@ -1039,39 +1015,61 @@ void sensor_init(void)
//BP_INT = PD5 //è¡å䏿
//4G_INT0 = PD6 //4G䏿0
//4G_INT1 = PD7 //4G䏿1
- pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_3_3); //设置å
é¨LDOè¾åºçµå
-
- system_set_port_mux(GPIO_PORT_D, GPIO_BIT_6, PORTD0_FUNC_D0);
- gpio_set_dir(GPIO_PORT_D, GPIO_BIT_6, GPIO_DIR_OUT);
- gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_6, 0); //ä¸æä¿¡å·ä½¿è½ ä½çµå¹³
-
- system_set_port_mux(GPIO_PORT_A, GPIO_BIT_0, PORTA0_FUNC_A0);
- gpio_set_dir(GPIO_PORT_A, GPIO_BIT_0, GPIO_DIR_OUT);
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 0); //å¿çä½¿è½ ä½çµå¹³
-
-
- system_set_port_mux(GPIO_PORT_A, GPIO_BIT_1, PORTA1_FUNC_A1);
- gpio_set_dir(GPIO_PORT_A, GPIO_BIT_1, GPIO_DIR_OUT);
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //è¡å使è½
-
- system_set_port_pull((GPIO_PA0 | GPIO_PA1), true); //è®¾ç½®ä¸æ
-
- system_set_port_mux(GPIO_PORT_D, GPIO_BIT_5, PORTD5_FUNC_D5);
- gpio_set_dir(GPIO_PORT_D, GPIO_BIT_5, GPIO_DIR_IN);
- system_set_port_pull(GPIO_PD5, true); //è®¾ç½®ä¸æ
- gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_5, 1); //è¡å䏿
-
+ pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_2_1); //设置å
é¨LDOè¾åºçµå
+
+ // system_set_port_mux(GPIO_PORT_D, GPIO_BIT_6, PORTD0_FUNC_D0);
+ // pmu_set_pin_to_PMU(GPIO_PORT_D, BIT(6) );
+ // pmu_set_pin_pull(GPIO_PORT_D, BIT(6) , false);
+ // pmu_set_pin_dir(GPIO_PORT_D, BIT(6), GPIO_DIR_OUT);
+ // pmu_set_gpio_value(GPIO_PORT_D, BIT(6), 0);//ä¸æä¿¡å·ä½¿è½ ä½çµå¹³
+ //4Gè¯»æ°æ®ä¸æ
+ // pmu_set_port_mux(GPIO_PORT_D, GPIO_BIT_6, PMU_PORT_MUX_GPIO);
+ // pmu_set_pin_to_PMU(GPIO_PORT_D, BIT(6));
+ // pmu_set_pin_dir(GPIO_PORT_D, BIT(6), GPIO_DIR_IN);
+ // pmu_port_wakeup_func_set(GPIO_PD6);//GPIO䏿
+ //4Gè¯»æ°æ®ä¸æ
+ pmu_set_port_mux(GPIO_PORT_D, GPIO_BIT_7, PMU_PORT_MUX_GPIO);
+ pmu_set_pin_to_PMU(GPIO_PORT_D, BIT(7));
+ pmu_set_pin_dir(GPIO_PORT_D, BIT(7), GPIO_DIR_IN);
+ pmu_port_wakeup_func_set(GPIO_PD7);//GPIO䏿
+ //pmu_set_pin_pull(GPIO_PORT_D, BIT(5), true);
+
+ pmu_set_port_mux(GPIO_PORT_A, GPIO_BIT_0, PMU_PORT_MUX_GPIO);
+ pmu_set_pin_to_PMU(GPIO_PORT_A, BIT(0) );
+ pmu_set_pin_pull(GPIO_PORT_A, BIT(0) , false);
+ pmu_set_pin_dir(GPIO_PORT_A, BIT(0) , GPIO_DIR_OUT);
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 0);//å¿çä½¿è½ ä½çµå¹³
+
- system_set_port_mux(GPIO_PORT_C, GPIO_BIT_7, PORTC7_FUNC_C7);
- gpio_set_dir(GPIO_PORT_C, GPIO_BIT_7, GPIO_DIR_IN);
- system_set_port_pull(GPIO_PC7, true); //è®¾ç½®ä¸æ
- gpio_set_pin_value(GPIO_PORT_C, GPIO_BIT_7, 0); //å¿ç䏿
+ pmu_set_port_mux(GPIO_PORT_A, GPIO_BIT_0, PMU_PORT_MUX_GPIO);
+ pmu_set_pin_to_PMU(GPIO_PORT_A, BIT(1) );
+ pmu_set_pin_pull(GPIO_PORT_A, BIT(1) , false);
+ pmu_set_pin_dir(GPIO_PORT_A, BIT(1) , GPIO_DIR_OUT);
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1) , 0);//è¡å使è½
- pmu_set_pin_pull(GPIO_PORT_C,BIT(7),true);//䏿//å¿ç䏿
- pmu_set_pin_pull(GPIO_PORT_D,BIT(4),true);//䏿// ä¸è½´å°ç£ä¼ æå¨ä¸æ
- pmu_set_pin_pull(GPIO_PORT_D,BIT(5),true);//䏿//è¡å䏿
- pmu_set_pin_pull(GPIO_PORT_D,BIT(6),true);//䏿 //4G䏿0
- pmu_set_pin_pull(GPIO_PORT_D,BIT(7),true);//䏿 //4G䏿1
+
+ // system_set_port_mux(GPIO_PORT_D, GPIO_BIT_5, PORTD5_FUNC_D5);
+ // gpio_set_dir(GPIO_PORT_D, GPIO_BIT_5, GPIO_DIR_IN);
+ // system_set_port_pull(GPIO_PD5, true); //è®¾ç½®ä¸æ
+ // gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_5, 1); //è¡å䏿
+
+ //è¡å䏿
+ // pmu_set_port_mux(GPIO_PORT_D, GPIO_BIT_5, PMU_PORT_MUX_GPIO);
+ // pmu_set_pin_to_PMU(GPIO_PORT_D, BIT(5));
+ // pmu_set_pin_dir(GPIO_PORT_D, BIT(5), GPIO_DIR_IN);
+ //pmu_set_pin_pull(GPIO_PORT_D, BIT(5), true);
+
+ //å¿ç䏿
+ pmu_set_port_mux(GPIO_PORT_C, GPIO_BIT_7, PMU_PORT_MUX_GPIO);
+ pmu_set_pin_to_PMU(GPIO_PORT_C, BIT(7));
+ pmu_set_pin_dir(GPIO_PORT_C, BIT(7), GPIO_DIR_IN);
+ //pmu_set_pin_pull(GPIO_PORT_C, BIT(7), true);
+
+ //pmu_set_pin_pull(GPIO_PORT_C,BIT(7),true);//䏿//å¿ç䏿
+ //pmu_set_pin_pull(GPIO_PORT_D,BIT(4),true);//䏿// ä¸è½´å°ç£ä¼ æå¨ä¸æ
+ //pmu_set_pin_pull(GPIO_PORT_D,BIT(5),true);//䏿//è¡å䏿
+ //pmu_set_pin_pull(GPIO_PORT_D,BIT(6),true);//䏿 //4G䏿0
+ //pmu_set_pin_pull(GPIO_PORT_D,BIT(7),true);//䏿 //4G䏿1
//pmu_port_wakeup_func_set(GPIO_PC7|GPIO_PD4|GPIO_PD5|GPIO_PD6|GPIO_PD7);//GPIO䏿
//pmu_port_wakeup_func_set(GPIO_PC7|GPIO_PD4|GPIO_PD6|GPIO_PD7);//GPIO䏿
NVIC_EnableIRQ(PMU_IRQn);
@@ -1086,7 +1084,11 @@ void sensor_init(void)
get_tp_data();
gsensor_init();//gsensoråå§å
+ //æµè¯ä»£ç
+ //OTA_open();//OTAå级
//wear_open();//佩æ´
//YYL_open();//ä¸å»
- //SPO2_open();
+ //BP_open();
}
+
+
diff --git a/1.doc/K18/BLE_Watch/code/sensor_drive.h b/1.doc/K18/BLE_Watch/code/sensor_drive.h
index 05da1447..252d8fca 100644
--- a/1.doc/K18/BLE_Watch/code/sensor_drive.h
+++ b/1.doc/K18/BLE_Watch/code/sensor_drive.h
@@ -5,6 +5,7 @@
// #define PPG_BUF_LEN 60*100
// extern char ppg_buf[PPG_BUF_LEN];
// extern int ppg_buf_len ;
+#define YYL_PPG_TEST_LEN 2000 //ä¸å»ä¸åéæµè¯æ°æ®é
typedef enum
{
UART0_EVEN=0,//䏲壿°æ®å¤ç
@@ -12,6 +13,7 @@ typedef enum
BP_IRQ ,//è¡å䏿
}SENSOR_IRQ;
+
extern int yyl_in_data_len;
int task_sensor_evn(os_event_t *param);
void BP_open(void);//è¡å
@@ -42,4 +44,5 @@ void sensor_while(void);
void sensor_INT(void);
void YYL_out_data(void);
void factory_open(void);
+void OTA_open(void);
#endif //_SENSOR_H
diff --git a/1.doc/K18/BLE_Watch/code/user_task.c b/1.doc/K18/BLE_Watch/code/user_task.c
index 7a235841..a6d695ba 100644
--- a/1.doc/K18/BLE_Watch/code/user_task.c
+++ b/1.doc/K18/BLE_Watch/code/user_task.c
@@ -6,48 +6,88 @@
#include "co_printf.h"
#include "user_task.h"
#include "button.h"
-
-uint16_t user_task_id;
-
+#include "vc9202_user.h"
+#include "driver_system.h"
+#include "uart.h"
+#include "sensor_drive.h"
+uint16_t user_task_id = 0;
+extern int uart0_data_len ;
+extern char uart0_flag;
+extern unsigned char USER_IRQ_FLAG;
static int user_task_func(os_event_t *param)
{
- switch(param->event_id)
+ static int USER_IRQ_count = 0;
+ switch (param->event_id)
{
- case USER_EVT_BUTTON:
+ case USER_IRQ:
+ //
+ USER_IRQ_count++;
+ co_delay_10us(1);
+ if(USER_IRQ_count > 50)//çå¾
1.5msåå¤çæ°æ®
{
- struct button_msg_t *button_msg;
- const char *button_type_str[] = {
- "BUTTON_PRESSED",
- "BUTTON_RELEASED",
- "BUTTON_SHORT_PRESSED",
- "BUTTON_MULTI_PRESSED",
- "BUTTON_LONG_PRESSED",
- "BUTTON_LONG_PRESSING",
- "BUTTON_LONG_RELEASED",
- "BUTTON_LONG_LONG_PRESSED",
- "BUTTON_LONG_LONG_RELEASED",
- "BUTTON_COMB_PRESSED",
- "BUTTON_COMB_RELEASED",
- "BUTTON_COMB_SHORT_PRESSED",
- "BUTTON_COMB_LONG_PRESSED",
- "BUTTON_COMB_LONG_PRESSING",
- "BUTTON_COMB_LONG_RELEASED",
- "BUTTON_COMB_LONG_LONG_PRESSED",
- "BUTTON_COMB_LONG_LONG_RELEASED",
- };
-
- button_msg = (struct button_msg_t *)param->param;
-
- co_printf("KEY 0x%08x, TYPE %s.\r\n", button_msg->button_index, button_type_str[button_msg->button_type]);
- }
+ //co_printf("USER_IRQ!!uart0_data_len:%d\r\n",uart0_data_len);
+ if(uart0_data_len > 0 )
+ {
+ if(uart0_flag == 0 && USER_IRQ_count < 80000)//æ°æ®æ²¡æ¥æ¶å®ï¼çå¾
æ°æ®æ¥æ¶å®,æå¤§çå¾
800ms
+ {
+ user_event_send(USER_IRQ, NULL, NULL);
+ }
+ else
+ {
+ USER_IRQ_count = 0;
+ user_parse_data();//䏲壿°æ®å¤ç
+ USER_IRQ_FLAG = 0;
+ system_sleep_enable();//ç¡ç
+ }
+
+ }
+ else
+ {
+ USER_IRQ_count = 0;
+ //co_printf("USER_HR_IRQ!!\r\n");
+ vc9202_usr_interrupt_handler(SPORT_TYPE_NORMAL,1);//å¿ç䏿å¤ç
+ USER_IRQ_FLAG = 0;
+ system_sleep_enable();//ç¡ç
+ }
+
+ }else
+ user_event_send(USER_IRQ, NULL, NULL);
+
+ break;
+ case USER_EVT_OPEN_BP:
+ BP_test();
break;
- }
+ case USER_EVT_ENTER_SLEEP:
- return EVT_CONSUMED;
-}
+
+ co_printf("enter sleep!!\r\n");
+ system_sleep_enable();
+
+ //
+ break;
+ case USER_EVT_EXIT_SLEEP:
+
+
+ co_printf("exit sleep!!\r\n");
+ break;
+ }
+
+ return EVT_CONSUMED;
+}
void user_task_init(void)
{
user_task_id = os_task_create(user_task_func);
}
+void user_event_send(uint16_t event, uint8_t* p_data, uint16_t len)
+{
+ os_event_t user_event;
+
+ user_event.event_id = event;
+ user_event.src_task_id = user_task_id;
+ user_event.param = p_data;
+ user_event.param_len = len;
+ if(user_task_id != 0)
+ os_msg_post(user_task_id, &user_event);
+}
diff --git a/1.doc/K18/BLE_Watch/code/user_task.h b/1.doc/K18/BLE_Watch/code/user_task.h
index 333afde1..cdef99e9 100644
--- a/1.doc/K18/BLE_Watch/code/user_task.h
+++ b/1.doc/K18/BLE_Watch/code/user_task.h
@@ -2,13 +2,16 @@
#define _USER_TASK_H
enum user_event_t {
- USER_EVT_AT_COMMAND,
- USER_EVT_BUTTON,
+
+ USER_IRQ,
+ USER_EVT_OPEN_BP,
+ USER_EVT_ENTER_SLEEP,
+ USER_EVT_EXIT_SLEEP,
};
extern uint16_t user_task_id;
void user_task_init(void);
-
+void user_event_send(uint16_t event, uint8_t* p_data, uint16_t len);
#endif // _USER_TASK_H
diff --git a/1.doc/K18/BLE_Watch/components/driver/driver_timer.c b/1.doc/K18/BLE_Watch/components/driver/driver_timer.c
index 1caf2438..cb636ef0 100644
--- a/1.doc/K18/BLE_Watch/components/driver/driver_timer.c
+++ b/1.doc/K18/BLE_Watch/components/driver/driver_timer.c
@@ -312,25 +312,17 @@ uint8_t timer_init(uint32_t timer_addr, uint32_t count_us, uint8_t run_mode)
return true;
}
-unsigned int timer0_count = 0;
-extern unsigned int timestamp_d; //ç§çæ¶é´æ³ï¼éè¦é
åRTC使ç¨
-extern unsigned int uart0_timer;//å¤æä¸»æºæ¯å¦å¨çº¿çè¶
æ¶æ¶é´è®¡æ°
-extern unsigned int yyl_timer;
-extern unsigned int gsensor_timer_10ms;
+
+
+
__attribute__((weak)) __attribute__((section("ram_code"))) void timer0_isr_ram(void)
{
timer_clear_interrupt(TIMER0);
- timer0_count++;
- if(gsensor_timer_10ms < 10000000)
- gsensor_timer_10ms++;
- if(timer0_count > 100)
- {
- timer0_count=0;
- timestamp_d++;
- uart0_timer++;
- yyl_timer++;
+
+
+
//co_printf("timer0_isr_ram:0\r\n");
- }
+
//
}
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 2274094b..2b7b5ab8 100644
--- a/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvgui.Administrator
+++ b/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvgui.Administrator
@@ -6,7 +6,7 @@
### uVision Project, (C) Keil Software
- H:\1.work\3.ASR\3.Z5\1.doc\K18\BLE_Watch\keil\VC9202
+ H:\1.work\3.ASR\3.Z5\1.doc\K18\BLE_Watch\code
@@ -15,7 +15,7 @@
38003
Registers
- 197 198
+ 161 162
346
@@ -101,17 +101,17 @@
-1
- 141
- -164
- 1544
- 974
+ 235
+ 142
+ 1417
+ 963
0
- 556
- 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000400000003000000010000004D483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C6B65696C5C5643393230325C7663393230325F6472697665725F746573746D6F64652E6300000000187663393230325F6472697665725F746573746D6F64652E6300000000C5D4F200FFFFFFFF3C483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C636F64655C73656E736F725F64726976652E63000000000E73656E736F725F64726976652E6300000000FFDC7800FFFFFFFF42483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C6B65696C5C5643393230325C7663393230325F757365722E63000000000D7663393230325F757365722E6300000000BECEA100FFFFFFFF34483A5C312E776F726B5C332E4153525C332E5A355C312E646F635C4B31385C424C455F57617463685C6B65696C5C756172742E630000000006756172742E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000FD000000FB00000000060000F1020000
+ 60
+ 010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000000000000
@@ -134,7 +134,7 @@
16
- C5020000D70000006107000065010000
+ F20200002D0100008E070000BB010000
@@ -150,7 +150,7 @@
0
16
- 0300000066000000920100002C020000
+ 03000000660000004A010000C3010000
16
@@ -170,7 +170,7 @@
0
16
- 0300000066000000920100002C020000
+ 03000000660000004A010000C3010000
16
@@ -450,7 +450,7 @@
0
16
- 0300000066000000920100002C020000
+ 03000000660000004A010000C3010000
16
@@ -470,7 +470,7 @@
0
16
- 0300000066000000920100002C020000
+ 03000000660000004A010000C3010000
16
@@ -490,7 +490,7 @@
0
16
- 030000006002000099060000EE020000
+ 03000000F7010000E804000085020000
16
@@ -530,7 +530,7 @@
0
16
- 030000006002000099060000EE020000
+ 03000000F7010000E804000085020000
16
@@ -1150,7 +1150,7 @@
0
16
- 0300000066000000920100008C010000
+ 03000000660000004A0100008A010000
16
@@ -1170,7 +1170,7 @@
0
16
- 0300000060020000E8040000EE020000
+ 03000000F7010000E804000085020000
16
@@ -1190,7 +1190,7 @@
0
16
- 0300000060020000E8040000EE020000
+ 03000000F7010000E804000085020000
16
@@ -1250,7 +1250,7 @@
0
16
- 0300000060020000E8040000EE020000
+ 03000000F7010000E804000085020000
16
@@ -1270,7 +1270,7 @@
0
16
- 0300000060020000E8040000EE020000
+ 03000000F7010000E804000085020000
16
@@ -1730,7 +1730,7 @@
0
16
- 00000000070300009C0600001A030000
+ 000000009E020000EB040000B1020000
16
@@ -1799,14 +1799,14 @@
3312
- 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000C5020000D70000006107000065010000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000071060000D700000061070000AD020000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF950100004F00000099010000450200000100000002000010040000000100000012FFFFFFD2040000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000D1010000D7000000660300002D020000000000004F00000095010000450200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000D10100009D020000610700003F030000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000450200009C06000049020000010000000100001004000000010000007FFDFFFF8C000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000D101000031020000BC060000EF02000000000000490200009C060000070300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
+ 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F20200002D0100008E070000BB010000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000009E0600002D0100008E07000003030000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF4D0100004F00000051010000DC010000010000000200001004000000010000006DFEFFFF4D030000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000FE0100002D0100004B03000081020000000000004F0000004D010000DC0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000FE010000F30200008E07000095030000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000DC010000EB040000E0010000010000000100001004000000010000007FFDFFFF8C000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000FE01000085020000E90600004303000000000000E0010000EB0400009E0200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
59392
File
2946
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000E534C5F535741595F535441545553960000000000000014000E534C5F535741595F53544154555313534C5F444952454354494F4E5F5354415455530B534C5F44495354414E4345096D6573685F696E697412646563696D616C5F706F696E745F7365656E0D75617274315F6973725F72616D0F696E7465726E616C5F6D616C6C6F630648415F42554618737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0A756172745F706172616D15766353706F72744D6F74696F6E416C676F496E69741273656E645F6872735F646174615F666C61670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000400000000000000000000000000000000000001000000010000009600000002002050000000000E534C5F535741595F535441545553960000000000000014000E534C5F535741595F53544154555313534C5F444952454354494F4E5F5354415455530B534C5F44495354414E4345096D6573685F696E697412646563696D616C5F706F696E745F7365656E0D75617274315F6973725F72616D0F696E7465726E616C5F6D616C6C6F630648415F42554618737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0A756172745F706172616D15766353706F72744D6F74696F6E416C676F496E69741273656E645F6872735F646174615F666C61670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
1423
@@ -1822,7 +1822,7 @@
Build
976
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008626C655F6D6573689600000000000000010008626C655F6D657368000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA000000000000000000000000000000000000000000000000010000000100000096000000030020500000000008626C655F6D6573689600000000000000010008626C655F6D657368000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -1838,7 +1838,7 @@
Debug
2373
- 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -1857,49 +1857,4 @@
-
- 1
- 0
-
- 100
- 3
-
- .\VC9202\vc9202_driver_testmode.c
- 18
- 19
- 35
- 1
-
- 0
-
-
- ..\code\sensor_drive.c
- 3
- 193
- 210
- 1
-
- 0
-
-
- .\VC9202\vc9202_user.c
- 3
- 353
- 369
- 1
-
- 0
-
-
- .\uart.c
- 0
- 115
- 136
- 1
-
- 0
-
-
-
-
diff --git a/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvopt b/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvopt
index ebd4732b..e455bca3 100644
--- a/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvopt
+++ b/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvopt
@@ -283,6 +283,18 @@
0
0
+
+ 1
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\code\user_task.c
+ user_task.c
+ 0
+ 0
+
@@ -293,7 +305,7 @@
0
2
- 10
+ 11
1
0
0
@@ -305,7 +317,7 @@
2
- 11
+ 12
2
0
0
@@ -325,7 +337,7 @@
0
3
- 12
+ 13
1
0
0
@@ -345,7 +357,7 @@
0
4
- 13
+ 14
1
0
0
@@ -357,7 +369,7 @@
4
- 14
+ 15
1
0
0
@@ -377,7 +389,7 @@
0
5
- 15
+ 16
4
0
0
@@ -389,7 +401,7 @@
5
- 16
+ 17
4
0
0
@@ -403,13 +415,13 @@
driver
- 1
+ 0
0
0
0
6
- 17
+ 18
1
0
0
@@ -421,7 +433,7 @@
6
- 18
+ 19
1
0
0
@@ -433,7 +445,7 @@
6
- 19
+ 20
1
0
0
@@ -445,7 +457,7 @@
6
- 20
+ 21
1
0
0
@@ -457,7 +469,7 @@
6
- 21
+ 22
1
0
0
@@ -469,7 +481,7 @@
6
- 22
+ 23
1
0
0
@@ -481,7 +493,7 @@
6
- 23
+ 24
1
0
0
@@ -493,7 +505,7 @@
6
- 24
+ 25
1
0
0
@@ -505,7 +517,7 @@
6
- 25
+ 26
1
0
0
@@ -517,7 +529,7 @@
6
- 26
+ 27
1
0
0
@@ -529,7 +541,7 @@
6
- 27
+ 28
1
0
0
@@ -541,7 +553,7 @@
6
- 28
+ 29
1
0
0
@@ -561,7 +573,7 @@
0
7
- 29
+ 30
1
0
0
@@ -573,7 +585,7 @@
7
- 30
+ 31
5
0
0
@@ -593,7 +605,7 @@
0
8
- 31
+ 32
4
0
0
@@ -605,7 +617,7 @@
8
- 32
+ 33
4
0
0
@@ -617,7 +629,7 @@
8
- 33
+ 34
4
0
0
@@ -629,7 +641,7 @@
8
- 34
+ 35
4
0
0
@@ -641,7 +653,7 @@
8
- 35
+ 36
1
0
0
@@ -653,7 +665,7 @@
8
- 36
+ 37
1
0
0
@@ -665,7 +677,7 @@
8
- 37
+ 38
1
0
0
@@ -677,7 +689,7 @@
8
- 38
+ 39
1
0
0
@@ -689,7 +701,7 @@
8
- 39
+ 40
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 deea2f95..f4468518 100644
--- a/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvproj
+++ b/1.doc/K18/BLE_Watch/keil/BLE_Watch.uvproj
@@ -467,6 +467,11 @@
1
..\components\ble\profiles\ble_ota\ota.c
+
+ user_task.c
+ 1
+ ..\code\user_task.c
+
diff --git a/1.doc/K18/BLE_Watch/keil/Imitate_IIC.c b/1.doc/K18/BLE_Watch/keil/Imitate_IIC.c
index 981fbf36..773c3bfa 100644
--- a/1.doc/K18/BLE_Watch/keil/Imitate_IIC.c
+++ b/1.doc/K18/BLE_Watch/keil/Imitate_IIC.c
@@ -572,7 +572,7 @@ void user_i2c0_init(void)
I2C_SDA_DIR_OUT_0;
I2C_SDA_OUT_H_0;
- co_printf("iic -> TP_GS \n");
+ //co_printf("iic -> TP_GS \n");
//co_printf("PORTC dir:%x\r\n",gpio_portc_get_dir());
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 f15c78d3..eacc75b6 100644
--- a/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_driver.c
+++ b/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_driver.c
@@ -1499,6 +1499,9 @@ unsigned char vc9202_drv_reg_init(InitParamTypeDef *pInit_Param)
{
dev9202_info.work_frequency = 100;
dev9202_info.fifo_time = 200;
+ }else if(WORK_MODE_WEAR == dev9202_info.work_mode)
+ {
+ dev9202_info.fifo_time = 2000;
}
fifo_div = dev9202_info.fifo_time / (1000 / dev9202_info.work_frequency) - 1;
clk_div = (20000 / dev9202_info.work_frequency) - 1;
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 f0986960..b3eabc06 100644
--- a/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_user.c
+++ b/1.doc/K18/BLE_Watch/keil/VC9202/vc9202_user.c
@@ -30,6 +30,7 @@ static WorkModeTypeDef work_mode = WORK_MODE_NONE;
AlgoCalcResultsTypeDef vc9202_alg_results = {0};
extern unsigned char *UART_send_buf;
extern int UART_send_buf_len ;
+extern InitParamTypeDef pInit_Param;
/* èçåéåå§æ°æ®æ¥å£ */
//extern void vc9202_debug_send_heart_rate_data( SamplingDataTypeDef* presult ,GsensorTypeDef* paxis, unsigned char heart_rate, unsigned char algo_mode, unsigned char ppgsize );
//extern void vc9202_debug_send_spo2_data( SamplingDataTypeDef* presult ,GsensorTypeDef* paxis, unsigned char spo2_val, unsigned char ppgsize );
@@ -207,26 +208,17 @@ void vcHr02PhyInit(void)
/*------------------INSERT YOUR CODE HERE-----------------*/
system_set_port_mux(GPIO_PORT_A, GPIO_BIT_0, PORTA0_FUNC_A0);
- gpio_set_dir(GPIO_PORT_A, GPIO_BIT_0, GPIO_DIR_OUT);
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_0, 1); //å¿ç使è½
-
-
- system_set_port_mux(GPIO_PORT_A, GPIO_BIT_1, PORTA1_FUNC_A1);
- gpio_set_dir(GPIO_PORT_A, GPIO_BIT_1, GPIO_DIR_OUT);
- gpio_set_pin_value(GPIO_PORT_A, GPIO_BIT_1, 0); //è¡åä½¿è½ //å¿ç工使¶è¡åè¦æä½
-
- system_set_port_pull((GPIO_PA0 | GPIO_PA1), true); //è®¾ç½®ä¸æ
-
- system_set_port_mux(GPIO_PORT_D, GPIO_BIT_5, PORTD5_FUNC_D5);
- gpio_set_dir(GPIO_PORT_D, GPIO_BIT_5, GPIO_DIR_IN);
- system_set_port_pull(GPIO_PD5, true); //è®¾ç½®ä¸æ
- gpio_set_pin_value(GPIO_PORT_D, GPIO_BIT_5, 0); //è¡å䏿
-
+ pmu_set_pin_to_PMU(GPIO_PORT_A, BIT(0) );
+ pmu_set_pin_pull(GPIO_PORT_A, BIT(0) , false);
+ pmu_set_pin_dir(GPIO_PORT_A, BIT(0) , GPIO_DIR_OUT);
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(0), 1);//å¿çä½¿è½ ä½çµå¹³
+
- system_set_port_mux(GPIO_PORT_C, GPIO_BIT_7, PORTC7_FUNC_C7);
- gpio_set_dir(GPIO_PORT_C, GPIO_BIT_7, GPIO_DIR_IN);
- system_set_port_pull(GPIO_PC7, true); //è®¾ç½®ä¸æ
- gpio_set_pin_value(GPIO_PORT_C, GPIO_BIT_7, 1); //å¿ç䏿
+ system_set_port_mux(GPIO_PORT_A, GPIO_BIT_0, PORTA0_FUNC_A0);
+ pmu_set_pin_to_PMU(GPIO_PORT_A, BIT(1) );
+ pmu_set_pin_pull(GPIO_PORT_A, BIT(1) , false);
+ pmu_set_pin_dir(GPIO_PORT_A, BIT(1) , GPIO_DIR_OUT);
+ pmu_set_gpio_value(GPIO_PORT_A, BIT(1) , 0);//è¡å使è½
@@ -387,10 +379,11 @@ static void get_gsensor_data( GsensorTypeDef *pGsensorParam, unsigned char *pgse
pGsensorParam->effective_bits = 12;
// stk8321_get_fifo_data(&gsensor_len, gsensor_buff);
//unsigned char SC7A20_FIFO_NUM = 0;
- if(gsensor_timer_10ms > 8)//æå¿«80msæ´æ°ä¸æ¬¡
+ unsigned int system__time = system_get_curr_time();
+ if(system__time - gsensor_timer_10ms > 8)//æå¿«80msæ´æ°ä¸æ¬¡
{
SL_SC7A20_PEDO_KCAL_WRIST_SLEEP_SWAY_L_ALGO();
- gsensor_timer_10ms = 0;
+ gsensor_timer_10ms = system__time;
}
//co_printf("get_gsensor_data:gsensor_len:%d ppg_size:%d\r\n",gsensor_len,ppg_size);
@@ -684,6 +677,7 @@ static short int alg_calculate_hrv_handler( short int last_hr_val, SamplingDataT
return heart_rate_value;
}
unsigned int yyl_time = 0;
+extern char yyl_close_flag ;
void vc9202_usr_interrupt_handler( AlgoSportMode hr_alg_mode, unsigned char spo2_alg_mode )
{
//unsigned char wear_status = WEAR_STA_NONE;
@@ -759,7 +753,7 @@ void vc9202_usr_interrupt_handler( AlgoSportMode hr_alg_mode, unsigned char spo2
get_gsensor_data(&gsensor_data, &gsensor_size, ppg_size);
//co_printf("WORK_MODE_HRV2\n");
vc9202_alg_results.hr_rate = alg_calculate_hrv_handler( vc9202_alg_results.hr_rate, &data, ppg_size, &gsensor_data, hr_alg_mode );
- if(yyl_in_data_len< 3000-1 && ppg_size != 0)
+ if(yyl_in_data_len< YYL_PPG_TEST_LEN-1 && ppg_size != 0)
{
if(yyl_in_data_len == 0)
{
@@ -784,11 +778,16 @@ void vc9202_usr_interrupt_handler( AlgoSportMode hr_alg_mode, unsigned char spo2
//if(data.ppg_data[i])
YYL_Input_PFE(&yyl_in_data,vc9202_alg_results.hr_rate);
yyl_in_data_len++;
-
}
//co_printf(" \n");
- //co_printf("WORK_MODE_HRV4 yyl_in_data_len:%d\n",yyl_in_data_len);
+ co_printf("WORK_MODE_HRV4 yyl_in_data_len:%d\n",yyl_in_data_len);
+ }
+ if(yyl_in_data_len >= YYL_PPG_TEST_LEN-1) //åæ»¡3000个å
³é
+ {
+ pInit_Param.work_mode = WORK_MODE_WEAR;
+ vc9202_usr_init(&pInit_Param);
+ yyl_close_flag = 1;
}
diff --git a/1.doc/K18/BLE_Watch/keil/feedback.txt b/1.doc/K18/BLE_Watch/keil/feedback.txt
index 79ca3036..9f17fbda 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: Sun Apr 07 15:04:04 2024
+;## ARM Linker, 5060960: Last Updated: Fri Apr 19 18:18:55 2024
;VERSION 0.2
;FILE acpower_add_doublefre.o
acPower_add_doublefre_init <= USED 0
@@ -143,17 +143,12 @@ pmu_disable_irq <= USED 0
pmu_enable_charge <= USED 0
pmu_get_gpio_port_value <= USED 0
pmu_get_gpio_value <= USED 0
-pmu_port_wakeup_func_set <= USED 0
-pmu_set_gpio_value <= USED 0
pmu_set_led1_as_pwm <= USED 0
pmu_set_led1_value <= USED 0
pmu_set_led2_as_pwm <= USED 0
pmu_set_led2_value <= USED 0
pmu_set_lp_clk_src <= USED 0
-pmu_set_pin_dir <= USED 0
pmu_set_pin_to_CPU <= USED 0
-pmu_set_pin_to_PMU <= USED 0
-pmu_set_port_mux <= USED 0
;FILE driver_pmu_qdec.o
pmu_qdec_autorest_cnt_flag <= USED 0
pmu_qdec_init <= USED 0
@@ -174,7 +169,9 @@ __asm___14_driver_timer_c_89f15fa2____REVSH <= USED 0
__asm___14_driver_timer_c_89f15fa2____RRX <= USED 0
timer_get_current_value <= USED 0
timer_get_load_value <= USED 0
+timer_init <= USED 0
timer_reload <= USED 0
+timer_run <= USED 0
timer_set_load_value <= USED 0
timer_stop <= USED 0
;FILE driver_uart.o
@@ -317,6 +314,8 @@ l2cc_dbg_pdu_unpack <= USED 0
;FILE l2cm.o
;FILE lib_hr.o
amplitudevalue <= USED 0
+bubble <= USED 0
+change_sampling_rate_simplified <= USED 0
compute_bp_feature <= USED 0
convolution <= USED 0
corrcoef <= USED 0
@@ -329,21 +328,31 @@ get_emotion_pi <= USED 0
get_hr <= USED 0
get_pi <= USED 0
get_sleep_time <= USED 0
+ha_ismoving <= USED 0
+ha_iswarable <= USED 0
heart_rate <= USED 0
init_sleep_data <= USED 0
init_sleep_time <= USED 0
+insertsort <= USED 0
is_good_ppg <= USED 0
is_kpt <= USED 0
isperiodic <= USED 0
isppgsignal <= USED 0
load_bp_model <= USED 0
load_gen_info <= USED 0
+max_simplified <= USED 0
+mean <= USED 0
+meanfilter <= USED 0
+medianfilter <= USED 0
merge_sample_feature <= USED 0
moving_value <= USED 0
periodic_value <= USED 0
periodicvalue <= USED 0
+ppg_correction <= USED 0
+ppg_fearure_extractor_simplified <= USED 0
ppg_hrv_midvalue <= USED 0
ppg_keypoints_extractor_simplified <= USED 0
+ppg_midvalue <= USED 0
quicksort <= USED 0
version_get_number <= USED 0
version_get_string <= USED 0
@@ -839,11 +848,9 @@ os_msg_send <= USED 0
ke_task_delete <= USED 0
ke_task_saved_update <= USED 0
os_get_free_task_id_num <= USED 0
-os_get_free_task_type <= USED 0
-os_task_create <= USED 0
-os_task_create_x <= USED 0
os_task_delete <= USED 0
os_task_process_saved_msg <= USED 0
+os_user_loop_event_set <= USED 0
;FILE os_timer.o
;FILE ota.o
__asm___5_ota_c_56ada2da____REV16 <= USED 0
@@ -901,9 +908,11 @@ __asm___11_proj_main_c_30fea291____REVSH <= USED 0
__asm___11_proj_main_c_30fea291____RRX <= USED 0
;FILE rwble_hl.o
;FILE sensor_drive.o
+EMO_test <= USED 0
__asm___14_sensor_drive_c_eae9c459____REV16 <= USED 0
__asm___14_sensor_drive_c_eae9c459____REVSH <= USED 0
__asm___14_sensor_drive_c_eae9c459____RRX <= USED 0
+sensor_while <= USED 0
;FILE sha256.o
sha256_final <= USED 0
sha256_gatt_gen_auth_value <= USED 0
@@ -976,7 +985,7 @@ system_prevent_sleep_clear <= USED 0
system_prevent_sleep_set <= USED 0
system_set_rf_power <= USED 0
system_set_tx_power <= USED 0
-system_sleep_enable <= USED 0
+system_sleep_disable <= USED 0
val_to_str <= USED 0
;FILE uart.o
__asm___6_uart_c_57f9c24c____REV16 <= USED 0
@@ -988,13 +997,10 @@ ble_bond_clr_all_info <= USED 0
ble_bond_clr_info <= USED 0
ble_bond_get_bond_info <= USED 0
ble_bond_get_last_bond_idx <= USED 0
-;FILE user_mem.o
-ke_free_user <= USED 0
-ke_get_mem_max_usage <= USED 0
-ke_malloc_user <= USED 0
-show_ke_malloc <= USED 0
-show_mem_list <= USED 0
-show_msg_list <= USED 0
+;FILE user_task.o
+__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
vc9202_drv_electrostatic_death <= USED 0
vc9202_drv_get_chip_id <= USED 0
diff --git a/1.doc/K18/BLE_Watch/keil/uart.c b/1.doc/K18/BLE_Watch/keil/uart.c
index 7d198070..71c8eb2f 100644
--- a/1.doc/K18/BLE_Watch/keil/uart.c
+++ b/1.doc/K18/BLE_Watch/keil/uart.c
@@ -15,12 +15,14 @@ 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 = "20240316-v0.5.3.031624";
+char *Versions = "20240419-v0.5.3.031624";
int uart0_data_len =0;
+
+static int32_t system_curr_time = 0;//设置æ¶é´çæ¶åä¿åçç³»ç»è¿è¡æ¶é´
unsigned int timestamp_d = 0; //ç§çæ¶é´æ³ï¼éè¦é
åRTC使ç¨
unsigned int get_timestamp(void)//è·åæ¶é´æ³
{
- return timestamp_d;
+ return timestamp_d+((system_get_curr_time()-system_curr_time)/1000);;
}
@@ -117,7 +119,7 @@ __attribute__((section("ram_code"))) void uart0_isr_ram(void)
}
}
#include "vc9202_user.h"
-unsigned int uart0_timer = 0;
+//unsigned int uart0_timer = 0;
extern uint8_t bp_data[100];
extern uint16_t bp_data_len ;
extern AlgoCalcResultsTypeDef vc9202_alg_results;
@@ -125,21 +127,25 @@ void uart0_receive(void)
{
//return ;
- if(uart0_timer > 100)//100ç§æ²¡æ°æ®ï¼å
³éæµè¯
- {
- uart0_timer = 0;
- //sensor_close();
- co_printf("\nHost no response!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
- }
+ // if(uart0_timer > 100)//100ç§æ²¡æ°æ®ï¼å
³éæµè¯
+ // {
+ // uart0_timer = 0;
+ // //sensor_close();
+ // co_printf("\nHost no response!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
+ // }
if(uart0_flag == 0)
{
return ;
}
-
- uart0_timer = 0;//æä¸²å£æ°æ®ï¼è¯´æä¸»æºå¨çº¿
+ user_parse_data();
+}
+void user_parse_data(void)
+{
+ //uart0_timer = 0;//
if(uart0_data_len >0)
co_printf("uart_read:%s\n",uart0_rivce_data);
+ //return ;
//co_printf("uart0_receive:%s\n",uart0_rivce_data);
if(strstr((char *)uart0_rivce_data,"\"cmd\":\"1\""))//{"cmd":"
{
@@ -202,6 +208,10 @@ void uart0_receive(void)
{
uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
factory_open();//工忍¡å¼
+ }else if(strstr((char *)uart0_rivce_data,"\"OTA\""))//:"OTA"}//OTA:èçOTAå级模å¼
+ {
+ uart0_write_for_hci("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n", sizeof("{\"cmd\":\"1\",\"work_mode\":\"1\"}\r\n")-1, NULL, NULL);
+ OTA_open();//
}
else if(strstr((char *)uart0_rivce_data,"\"close\""))//:"close"}//close:å
³éæææµè¯ï¼è¿å
¥ä½åèå¾
æºæ¨¡å¼
{
@@ -324,6 +334,7 @@ void uart0_receive(void)
//co_printf("[CHENG]:send_wear_status=%d\r\n", vc9202_alg_results.wear_status);
UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"wear_data\":\"%d\"}\n",vc9202_alg_results.wear_status);
uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
+ co_printf("%s",UART_send_buf);
// memset(UART_send_buf,0,UART_SEND_MAX);
// UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"2\",\"wear_data\":\"%d\"}\n",wear);
// uart0_write_for_hci(UART_send_buf,UART_send_buf_len,NULL, NULL);
@@ -368,6 +379,7 @@ void uart0_receive(void)
memset(data_tmp,0,sizeof(data_tmp));
memcpy(data_tmp,str_tmp,len_tmp);
timestamp_d = atoi(data_tmp);
+ system_curr_time = system_get_curr_time();
co_printf("timestamp_d:%d\n",timestamp_d);
UART_send_buf_len = snprintf((char *)UART_send_buf,UART_SEND_MAX,"{\"cmd\":\"3\",\"set_config\":\"1\"}\n");
diff --git a/1.doc/K18/BLE_Watch/keil/uart.h b/1.doc/K18/BLE_Watch/keil/uart.h
index 69cbe936..442e0833 100644
--- a/1.doc/K18/BLE_Watch/keil/uart.h
+++ b/1.doc/K18/BLE_Watch/keil/uart.h
@@ -44,7 +44,7 @@
#include "DRIVER_FLASH.H"
#define UART_SEND_MAX 1024
#define UART_READ_MAX 512
-
+extern char *Versions;
typedef struct
{
char config_flag;
@@ -58,4 +58,5 @@ void uart0_receive(void);
void uart0_send(void);
extern void save_sys_config(void);
unsigned int get_timestamp(void);
+void user_parse_data(void);
#endif