diff --git a/BLE/DLD110S_Peripheral_28K/APP/dbn_ble_srv.c b/BLE/DLD110S_Peripheral_28K/APP/dbn_ble_srv.c index f134859..7c51b29 100644 --- a/BLE/DLD110S_Peripheral_28K/APP/dbn_ble_srv.c +++ b/BLE/DLD110S_Peripheral_28K/APP/dbn_ble_srv.c @@ -11,7 +11,7 @@ #include "CH59x_common.h" -uint8_t g_flag_notify_temp = 0; //ÁÙʱ֪ͨnotify flag, 0 disable, 1 enable +uint8_t g_flag_notify_temp = 0; //��ʱ֪ͨnotify flag, 0 disable, 1 enable BLE_Notify_Buf g_notify_buftemp = {0,0, ""}; BLE_Notify_Buf g_ble_rcv_buf = {0,0, ""}; @@ -70,8 +70,8 @@ void clear_buf_dbn_ble_all(Buf_DBN_BLE * buf) } -// 0: °ü¼ì²âÒì³£ -//¼ì²â°üÊÇ·ñÍêÕû£¬Magic Byte, Header Byte, CK Byte, УÑé×Ö½Ú£¨Òì»òУÑ飬ÒÔ¼°ºÍУÑ飩 +// 0: ������쳣 +//�����Ƿ�������Magic Byte, Header Byte, CK Byte, У���ֽڣ����У�飬�Լ���У�飩 uint8_t check_pkg(uint8_t * pkg, uint8_t len) { if(len < 6) //min length of ble pkg is 6 @@ -84,7 +84,7 @@ uint8_t check_pkg(uint8_t * pkg, uint8_t len) } uint8_t _dxor = 0; uint8_t _dsum = 0; - uint8_t _cklen = _len + 3; //²»¼ÆËã УÑé×Ö½Ú + uint8_t _cklen = _len + 3; //������ У���ֽ� uint8_t i = 0; for(i = 1; i < _cklen; i++) { @@ -200,7 +200,7 @@ uint8_t set_response_to_notify(Buf_DBN_BLE *response_ori, BLE_Notify_Buf * notif } if(response_ori->pkg_amount <= 1) { - //ûÓзְüµÄÇé¿ö + //û�зְ������ notify_dst->buf[0] = response_ori->magic; if(response_ori->magic == MAGIC_BYTE_DBN_TRANSPARENT) { @@ -436,7 +436,7 @@ static void unpack_pkg_set_cjq_param(uint8_t *pkg, uint8_t len) tmp[i++] = g_loop_cng_unit.sensitvity; tmp[i++] = g_loop_cng_unit.delay_time; tmp[i++] = g_loop_cng_unit.output_mode; - tmp[i++] = g_loop_cng_unit.direction_mode; //ĬÈÏ 0 + tmp[i++] = g_loop_cng_unit.direction_mode; //Ĭ�� 0 tmp[i++] = g_loop_cng_unit.loopFreq_Level; tmp[i++] = g_loop_cng_unit.loopSafe_Timeout; tmp[i++] = g_loop_cng_unit.exist_mode; @@ -470,7 +470,7 @@ void usart_packet_processing_acs_loop(uint8_t flag) g_freq_tmp = (float)(g_sys_freq )/((float)(_loop_capvd)/((float)(loop1_LPCNT))); // ?? ??????? - // why + 360? balance value ,²¹³¥£¬¾­ÑéÖµ£¬¿ÉÒÔ¸ù¾Ýʾ²¨Æ÷±È½ÏÔÙ½øÐе÷Õû + // why + 360? balance value ,����������ֵ�����Ը���ʾ�����Ƚ��ٽ��е��� _current_freq = (uint32_t)(g_freq_tmp) + 360 ;// * 32); // if(flag) { @@ -483,7 +483,7 @@ void usart_packet_processing_acs_loop(uint8_t flag) // { // if(_current_freq - _last_freq > 30) // { - // //Îȶ¨ÏÔʾ£¬¹ýÂ˵ÍÊýÖµµÄ±ä¶¯ + // //�ȶ���ʾ�����˵���ֵ�ı䶯 // g_loop_acs_info.frequent = _current_freq; // _last_freq = _current_freq; // } @@ -492,7 +492,7 @@ void usart_packet_processing_acs_loop(uint8_t flag) // { // if(_last_freq - _current_freq > 30) // { - // // Îȶ¨ÏÔʾ£¬¹ýÂ˵ÍÊýÖµµÄ±ä¶¯ + // // �ȶ���ʾ�����˵���ֵ�ı䶯 // g_loop_acs_info.frequent = _current_freq; // _last_freq = _current_freq; // } @@ -516,6 +516,7 @@ void usart_packet_processing_acs_loop(uint8_t flag) g_tmp_report_buf.buf[i++] = (uint8_t)g_loop_acs_info.variation; g_tmp_report_buf.buf[i++] = (g_loop_acs_info.variation >> 8) % 0x100; + g_tmp_report_buf.buf[i++] = (g_loop_acs_info.variation >> 16) % 0x100; g_tmp_report_buf.len = i; @@ -530,7 +531,7 @@ void report_sens_acs(void) if(g_dbn_ble_state_acs_enable.enable) { - // Éϱ¨ÏßȦ¶¯Ì¬Êý¾Ý + // �ϱ���Ȧ��̬���� // switch(g_dbn_ble_state_acs_enable.sens_type) @@ -538,7 +539,7 @@ void report_sens_acs(void) // //case SENS_LOOP_DYNAMIC: // default: // { - // ÏßȦ¶¯Ì¬ÐÅÏ¢ + // ��Ȧ��̬��Ϣ if(g_loop_acs_info.flag_event) { // if(g_loop_acs_info.report_counter >= 3) @@ -636,7 +637,7 @@ void manage_dbn_ble_default(uint8_t *pkg, uint8_t len) // PRINT("\nGet_Cjq_param\n"); } break; // case CMD_DBN_LOOP_SAMPLE_PARAM:{ -// // »ñÈ¡/ÉèÖà µØ¸Ð²ÉÑù²ÎÊý +// // ��ȡ/���� �ظв������� //// PRINT("SAMPLE_CNG: %02X\n", pkg[4]); // if(pkg[4] == 0){ // // get param @@ -663,13 +664,13 @@ void manage_dbn_ble_default(uint8_t *pkg, uint8_t len) // // set_response_buf(&g_buf_ble_response, MAGIC_BYTE_DBN_DEFAULT, _cmd, tmp_ble_buf, i); // -// //TODO: ²»Õû¸öÉ豸¸´Î»£¬¸´Î»³ýÁËÀ¶ÑÀµÄ²¿·Ö£¬¼´À¶ÑÀÕý³££¬ÆäËû²¿·ÖÖØÐ³õʼ»¯ +// //TODO: �������豸��λ����λ���������IJ��֣������������������������³�ʼ�� // para_store_init(); // } // // } break; // case CMD_DBN_LOOP_BALANCE_PARAM: { -// // »ñÈ¡/ÉèÖÃ Æ¯ÒÆ²¹³¥²ÎÊý +// // ��ȡ/���� Ư�Ʋ������� //// PRINT("Balance_CNG: %02X\n", pkg[4]); // if(pkg[4] == 0){ // // get param @@ -697,14 +698,14 @@ void manage_dbn_ble_default(uint8_t *pkg, uint8_t len) // // set_response_buf(&g_buf_ble_response, MAGIC_BYTE_DBN_DEFAULT, _cmd, tmp_ble_buf, i); // -// //TODO: ²»Õû¸öÉ豸¸´Î»£¬¸´Î»³ýÁËÀ¶ÑÀµÄ²¿·Ö£¬¼´À¶ÑÀÕý³££¬ÆäËû²¿·ÖÖØÐ³õʼ»¯ +// //TODO: �������豸��λ����λ���������IJ��֣������������������������³�ʼ�� // para_store_init(); // // } // // } break; // case CMD_DBN_LOOP_RELEASE_PLANB: { -// // »ñÈ¡/ÉèÖà ÊÍ·ÅÈ¥¶¶¶¯Ëã·¨²ÎÊý +// // ��ȡ/���� �ͷ�ȥ�����㷨���� //// PRINT("Release2_CNG: %02X\n", pkg[4]); // if(pkg[4] == 0){ // // get param @@ -732,7 +733,7 @@ void manage_dbn_ble_default(uint8_t *pkg, uint8_t len) // // set_response_buf(&g_buf_ble_response, MAGIC_BYTE_DBN_DEFAULT, _cmd, tmp_ble_buf, i); // -// //TODO: ²»Õû¸öÉ豸¸´Î»£¬¸´Î»³ýÁËÀ¶ÑÀµÄ²¿·Ö£¬¼´À¶ÑÀÕý³££¬ÆäËû²¿·ÖÖØÐ³õʼ»¯ +// //TODO: �������豸��λ����λ���������IJ��֣������������������������³�ʼ�� // para_store_init(); // } // } break; @@ -772,23 +773,23 @@ void manage_dbn_ble_default(uint8_t *pkg, uint8_t len) write_cfg_to_store(Addr_Loop_Sens_List_Offset, &tmp_ble_buf[1], (i - 1)); DelayMs(10); - //TODO: ²»Õû¸öÉ豸¸´Î»£¬¸´Î»³ýÁËÀ¶ÑÀµÄ²¿·Ö£¬¼´À¶ÑÀÕý³££¬ÆäËû²¿·ÖÖØÐ³õʼ»¯ + //TODO: �������豸��λ����λ���������IJ��֣������������������������³�ʼ�� para_store_init(); } } break; case CMD_DBN_SET_CJQ_FACTORY: { - // ³ö³§³õʼ»¯ + // ������ʼ�� tmp_ble_buf[0] = 0; set_response_buf(&g_buf_ble_response, MAGIC_BYTE_DBN_DEFAULT, _cmd, tmp_ble_buf, 1); set_factory_param(); factory_dev(); DelayMs(10); - //TODO: ²»Õû¸öÉ豸¸´Î»£¬¸´Î»³ýÁËÀ¶ÑÀµÄ²¿·Ö£¬¼´À¶ÑÀÕý³££¬ÆäËû²¿·ÖÖØÐ³õʼ»¯ + //TODO: �������豸��λ����λ���������IJ��֣������������������������³�ʼ�� para_store_init(); } break; case CMD_SENS_ACS_ENABLE: { - // ÏßȦ¶¯Ì¬ + // ��Ȧ��̬ g_dbn_ble_state_acs_enable.enable = pkg[5]; if(g_dbn_ble_state_acs_enable.enable){ diff --git a/BLE/DLD110S_Peripheral_28K/APP/include/storage.h b/BLE/DLD110S_Peripheral_28K/APP/include/storage.h index dd8e8f4..59042af 100644 --- a/BLE/DLD110S_Peripheral_28K/APP/include/storage.h +++ b/BLE/DLD110S_Peripheral_28K/APP/include/storage.h @@ -39,20 +39,20 @@ typedef struct _Loop_Sample_CNG_ { uint8_t flag; - uint16_t max_amplitude; // ×î´ó·ùÖµ + uint16_t max_amplitude; // ����ֵ }Loop_Sample_Cng; typedef struct _Loop_Balance_Ori_CNG_ { uint8_t flag; - uint16_t max_cnt ; // ×î´ó²¹³¥´ÎÊý -}Loop_Balance_Ori_Cng; // Æ¯ÒÆ²¹³¥ + uint16_t max_cnt ; // ��󲹳����� +}Loop_Balance_Ori_Cng; // Ư�Ʋ��� typedef struct _Loop_Release_Ori_PlanB_ { uint8_t flag_weight; - uint16_t max_amplitude; //×î´ó·ùÖµ - uint8_t timeout; // µ¥Î»£º·ÖÖÓ + uint16_t max_amplitude; //����ֵ + uint8_t timeout; // ������� }Loop_Release_Ori_PlanB; typedef struct _Loop_Release_Change_Rate_ @@ -77,13 +77,13 @@ extern Loop_Balance_PlanB g_loop_balance_planB; typedef struct { - uint8_t sensitvity; // ¸ßËÄλ±íʾÁéÃô¶ÈµÄÊýÁ¿£¬µÍËÄλ±íʾµ±Ç°ÁéÃô¶ÈµÄÐòºÅ£¨´Ó0¿ªÊ¼£© + uint8_t sensitvity; // ����λ��ʾ�����ȵ�����������λ��ʾ��ǰ�����ȵ���ţ���0��ʼ�� uint8_t delay_time; uint8_t output_mode; - uint8_t direction_mode; // ·½ÏòÅбðģʽ£¬0 ´¥·¢Ä£Ê½£¬ ·Ç0 ±íʾ·½ÏòÅбðģʽ - uint8_t loopFreq_Level; // ¸ßµÍƵ - uint8_t loopSafe_Timeout; // ÏßȦ°²È«Ä£Ê½£¬ 0±íʾ¹Ø±Õ£¬·Ç0±íʾ¿ªÆô£¬ÒÔ10ÃëΪµ¥Î» - uint8_t exist_mode; // 0 ÓÀ¾Ã´æÔÚ£¬·Ç0£¬±íʾÓÐÏÞ´æÔÚµÄʱ¼ä£¬µ¥Î»Îª10Ãë + uint8_t direction_mode; // �����б�ģʽ��0 ����ģʽ�� ��0 ��ʾ�����б�ģʽ + uint8_t loopFreq_Level; // �ߵ�Ƶ + uint8_t loopSafe_Timeout; // ��Ȧ��ȫģʽ�� 0��ʾ�رգ���0��ʾ��������10��Ϊ��λ + uint8_t exist_mode; // 0 ���ô��ڣ���0����ʾ���޴��ڵ�ʱ�䣬��λΪ10�� }Loop_Cng_Unit; extern Loop_Cng_Unit g_loop_cng_unit; @@ -105,7 +105,7 @@ extern Loop_Sens_List g_loop_sens_list; typedef struct _DBN_BLE_STATE_ { uint8_t flag; // if need to report - uint8_t enable; // ÊÇ·ñʹÄÜ + uint8_t enable; // �Ƿ�ʹ�� uint8_t send_flag; uint8_t obj_amount; uint8_t cmd; @@ -126,18 +126,18 @@ extern DBN_BLE_State g_dbn_ble_state_acs_enable; typedef enum { SENS_NONE = 0, - SENS_SUB_INFO = 1, // ´«¸ÐÆ÷É豸ÐÅÏ¢ - SENS_OBJ_DYNAMIC = 2, // ¶¯Ì¬Ä¿±êÀàÐÍ - SENS_SOUTPUT_STATUS = 3, // µ±Ç°¿ª¹ØÁ¿Êä³öµÄ״̬ - SENS_DETAIL_CNG = 4, // ÏêϸÅäÖà - SENS_LOOP_DYNAMIC = 5, // ÏßȦ¶¯Ì¬ÐÅÏ¢ + SENS_SUB_INFO = 1, // �������豸��Ϣ + SENS_OBJ_DYNAMIC = 2, // ��̬Ŀ������ + SENS_SOUTPUT_STATUS = 3, // ��ǰ�����������״̬ + SENS_DETAIL_CNG = 4, // ��ϸ���� + SENS_LOOP_DYNAMIC = 5, // ��Ȧ��̬��Ϣ SENS_OBJ_BackGround = 6, // SENS_OBJ_INSIDE = 7, // SENS_LOOP_TREND, SENS_OBJ_DYNAMIC_SIMPLE, SENS_OBJ_STATIC_XuJing, //10, 0x0A - SENS_DOBULE_LOOP_ESTIMATE //0x0B, ÏßȦ»·¾³ÆÀ¹À -} SUB_SENS_TYPE; // ´«¸ÐÊý¾ÝÀàÐÍ + SENS_DOBULE_LOOP_ESTIMATE //0x0B, ��Ȧ�������� +} SUB_SENS_TYPE; // ������������ @@ -163,7 +163,7 @@ typedef struct _LOOP_ACS_INFO uint8_t flag_change; uint32_t frequent; uint32_t loop_capvd; - int16_t variation; + int32_t variation; uint32_t event_counter; uint32_t report_counter; } Loop_ACS_Info; @@ -174,7 +174,7 @@ extern Loop_ACS_Info g_loop_acs_info; #define HOLD_TIME 5*1200 -#define LC_HOLD_TIME 4*1200 //ʱ¼ä4·ÖÖÓ +#define LC_HOLD_TIME 4*1200 //ʱ��4���� #define IN_DELAY 10 #define OUT_DELAY 39 #define PLUSE_DELAY 10 diff --git a/BLE/DLD110S_Peripheral_28K/APP/peripheral_main.c b/BLE/DLD110S_Peripheral_28K/APP/peripheral_main.c index 400fdcb..9e33724 100644 --- a/BLE/DLD110S_Peripheral_28K/APP/peripheral_main.c +++ b/BLE/DLD110S_Peripheral_28K/APP/peripheral_main.c @@ -3,15 +3,15 @@ * Author : WCH / wangfq * Version : V2.0 (algorithm ported from DLD154V4B) * Date : 2026/07/18 - * Description : DLD110SV4 µ¥ÏßȦÀ¶ÑÀ³µ¼ìÆ÷ Ö÷º¯Êý + * Description : DLD110SV4 ����Ȧ���������� ������ * - * Ë㷨˵Ã÷ (ÒÆÖ²×Ô DLD154V4B TaskLoop V2.0, M1H ¾«¼òϵ): - * - ×ÔÊÊÓ¦²âÁ¿´°: LPCNT = MEASUREMENT_BASE / Xn, ²âÁ¿´°Ê±³¤ÓëÏßȦƵÂÊÎÞ¹Ø - * - Ò»½× IIR (79/256) + бÂÊÏÞ·ù 5% (¾Ü¾ø EMI ˲̬¼â·å) - * - Îȶ¨ÆÚ 128 ´°¿ìËÙÊÕÁ² (ÈÆ¹ýÂ˲¨, С´°¿Ú 100) - * - »ùÏ߸ú×Ù ´°¿Ú 500 + ¶³½á±£»¤ (³¬Ê± + Îȶ¨ÐÔË«Ìõ¼þÇ¿ÖÆ¸üÐÂ) - * - ½øÈëÈ·ÈÏ 3 ´Î; À뿪: ƽ̹ÐÔÈýÌõ¼þÅж¨ (רÀû CN200910309382) - * - ÓÐÏÞ´æÔÚ³¬Ê± / °²È«¸´Î»: È«¸´Î»Öؽ¨»ùÏß + * �㷨˵�� (��ֲ�� DLD154V4B TaskLoop V2.0, M1H ����ϵ): + * - ����Ӧ������: LPCNT = MEASUREMENT_BASE / Xn, ������ʱ������ȦƵ���޹� + * - һ�� IIR (79/256) + б���޷� 5% (�ܾ� EMI ˲̬���) + * - �ȶ��� 128 ���������� (�ƹ��˲�, ���� 100) + * - ���߸��� ���� 500 + ���ᱣ�� (��ʱ + �ȶ���˫����ǿ�Ƹ���) + * - ����ȷ�� 3 ��; �뿪: ƽ̹���������ж� (ר�� CN200910309382) + * - ���޴��ڳ�ʱ / ��ȫ��λ: ȫ��λ�ؽ����� ********************************************************************************* * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. * Attention: This software (modified or not) and binary are used for @@ -19,7 +19,7 @@ *******************************************************************************/ /******************************************************************************/ -/* Í·Îļþ°üº¬ */ +/* ͷ�ļ����� */ #include "CONFIG.h" #include "HAL.h" #include "gattprofile.h" @@ -30,10 +30,11 @@ #include "dbn_ble_srv.h" -uint8_t g_flag_bt_state = 0; // 0 À¶ÑÀûÓÐÁ¬½Ó£¬1 ÓÐÀ¶ÑÀÁ¬½Ó +uint8_t g_flag_bt_state = 0; // 0 ����û�����ӣ�1 ���������� uint8_t g_flag_output = 0; uint32_t g_xn_counter = 0; uint8_t g_function_mode = 0; +uint32_t g_sys_freq = 0; #define RLY1_ON (R32_PA_OUT |= BV(8)) #define RLY1_OFF (R32_PA_OUT &= ~BV(8)) @@ -51,27 +52,27 @@ uint8_t g_function_mode = 0; #define KEY_SA2 (GPIOA_ReadPortPin(GPIO_Pin_15)) const uint8_t MAX_Store_Size = 80; -uint8_t g_loop_power_up_state = 0; // ¿ª»úÆô¶¯Ê±ÏßȦÊÇ·ñÁ¬½Ó +uint8_t g_loop_power_up_state = 0; // ��������ʱ��Ȧ�Ƿ����� __IO uint32_t TimingDelayInc; /*=========================================================================== - * Ëã·¨²ÎÊý -- ÒÆÖ²×Ô DLD154V4B (M4 ÓÅ»¯°æ), ÊÊÅä CH591R @60MHz + * �㷨���� -- ��ֲ�� DLD154V4B (M4 ����), ���� CH591R @60MHz * - * ²âÁ¿´°: MEASUREMENT_BASE ¸öϵͳʱÖÓ tick, ÓëÏßȦƵÂÊÎÞ¹Ø - * 524288(2^19) / 60MHz ~= 8.74ms, ¼´ vd1_task ÓÐЧ²ÉÑùÖÜÆÚ ~8.74ms - * (DLD154V4B Ϊ 131072 @120MHz + 10ms ÈÎÎñÂÖѯ, ʱ¼ä³ß¶È»ù±¾Ò»ÖÂ) + * ������: MEASUREMENT_BASE ��ϵͳʱ�� tick, ����ȦƵ���޹� + * 524288(2^19) / 60MHz ~= 8.74ms, �� vd1_task ���������� ~8.74ms + * (DLD154V4B Ϊ 131072 @120MHz + 10ms ������ѯ, ʱ��߶Ȼ���һ��) *===========================================================================*/ -#define MEASUREMENT_BASE 524288L // 2^19, ×ÔÊÊÓ¦²âÁ¿´°Ä¿±êÖµ (Value ~= 524288) +#define MEASUREMENT_BASE 524288L // 2^19, ����Ӧ������Ŀ��ֵ (Value ~= 524288) #define ALFA_CAP1 79 // IIR a=79/256~=0.31 (@8.74ms -> tau~=24ms) -#define MAX_SLOPE_RATE 5 // бÂÊÏÞ·ù: µ¥´Î×î´ó±ä»¯ 5% (¾Ü¾ø EMI ¼â·å) -#define ENTRY_CONFIRM 3 // ½øÈëÈ·ÈÏ: Á¬Ðø N ´ÎµÍÓÚãÐÖµ²ÅÅÐÓгµ -#define FREEZE_TIMEOUT 1000 // »ùÏß¶³½á³¬Ê±: ~8.7s, ³ÖÐøÆ«¸ßÇÒÎȶ¨ºóÇ¿ÖÆ¸üР-#define FREEZE_STABILITY_RATE 2 // ¶³½áÎȶ¨ÐÔ´°¿Ú: ²Î¿¼Öµ +-2% -#define USE_FLATNESS_EXIT 1 // 1=ƽ̹ÐÔÈýÌõ¼þÀ뿪, 0=¼òµ¥ÖͻطÀ¶¶ -#define WINDOW_ORIGIN 500 // »ùÏ߸ú×Ù´°¿Ú (500 ´° ~= 4.4s) -#define STABLE_SAMPLES 128 // Îȶ¨ÆÚÑù±¾Êý (~1.1s) -#define VARIATION_EVENT_TH 40 // BLE variation ʼþãÐÖµ (·ùÖµ»ù×¼ 2^19, ¶ÔÓ¦¾É´úÂëµÄ 5) -#define ENV_ACT_TH 30 // »·¾³»îÔ¾¶È: CAPVD ÏàÁÚ²î¾ø¶ÔÖµãÐÖµ (´ýÏÖ³¡ÑéÖ¤) +#define MAX_SLOPE_RATE 5 // б���޷�: �������仯 5% (�ܾ� EMI ���) +#define ENTRY_CONFIRM 3 // ����ȷ��: ���� N �ε�����ֵ�����г� +#define FREEZE_TIMEOUT 1000 // ���߶��ᳬʱ: ~8.7s, ����ƫ�����ȶ���ǿ�Ƹ��� +#define FREEZE_STABILITY_RATE 2 // �����ȶ��Դ���: �ο�ֵ +-2% +#define USE_FLATNESS_EXIT 1 // 1=ƽ̹���������뿪, 0=���ͻط��� +#define WINDOW_ORIGIN 500 // ���߸��ٴ��� (500 �� ~= 4.4s) +#define STABLE_SAMPLES 128 // �ȶ��������� (~1.1s) +#define VARIATION_EVENT_TH 40 // BLE variation �¼���ֵ (��ֵ��׼ 2^19, ��Ӧ�ɴ���� 5) +#define ENV_ACT_TH 30 // ������Ծ��: CAPVD ���ڲ����ֵ��ֵ (���ֳ���֤) uint32_t mstick(void){ return TimingDelayInc; @@ -93,7 +94,7 @@ const uint8_t MacAddr[6] = {0x84, 0xC2, 0xE4, 0x03, 0x02, 0x02}; uint8_t MACAddr[6] = {0x84, 0xC2, 0xE4, 0x03, 0x02, 0x02}; #endif -uint8_t g_dev_number[6] = ""; // É豸±àºÅ ²úÆ·±àºÅ +uint8_t g_dev_number[6] = ""; // �豸��� ��Ʒ��� char g_flag_debug = 1; @@ -109,27 +110,27 @@ uint8_t TM1cnt = 0; uint16_t g_hold_time = 0; /*=========================================================================== - * ²¶»ñ & ²âÁ¿ + * ���� & ���� *===========================================================================*/ -uint16_t loop1_Xn; // ÏàÁÚϽµÑØÖÜÆÚ (TMR0 Ö±½Ó¸ø³ö) -uint32_t loop1_dlt_ORG; // µ±Ç°ÁéÃô¶ÈãÐÖµ -uint32_t loop1_Origin; // »ùÏß (ÎÞ³µ²Î¿¼Öµ) -uint16_t loop1_LPCNT; // ÿ¸ö²âÁ¿´°ÀÛ¼ÓµÄ Xn ¸öÊý -uint16_t loop1_CapCnt; // µ±Ç°´°¿ÚÒÑÀÛ¼Ó´ÎÊý -uint32_t loop1_CapSum; // µ±Ç°´°¿ÚÀÛ¼ÓºÍ -uint32_t loop1_CAPVD; // IIR Â˲¨ºóµÄ²âÁ¿Öµ -uint32_t loop1_Value; // Ò»¸ö²âÁ¿´°µÄԭʼ Sigma-Xn -uint32_t loop1_ORG_SUM; // »ùÏ߸ú×ÙÀÛ¼ÓºÍ -uint16_t loop1_ORG_CNT; // »ùÏ߸ú×Ù¼ÆÊý +uint16_t loop1_Xn; // �����½������� (TMR0 ֱ�Ӹ���) +uint32_t loop1_dlt_ORG; // ��ǰ��������ֵ +uint32_t loop1_Origin; // ���� (�޳��ο�ֵ) +uint16_t loop1_LPCNT; // ÿ���������ۼӵ� Xn ���� +uint16_t loop1_CapCnt; // ��ǰ�������ۼӴ��� +uint32_t loop1_CapSum; // ��ǰ�����ۼӺ� +uint32_t loop1_CAPVD; // IIR �˲���IJ���ֵ +uint32_t loop1_Value; // һ����������ԭʼ Sigma-Xn +uint32_t loop1_ORG_SUM; // ���߸����ۼӺ� +uint16_t loop1_ORG_CNT; // ���߸��ټ��� /*=========================================================================== - * ¼ÆÊýÆ÷ + * ������ *===========================================================================*/ uint8_t loop1_INCNT; uint8_t loop1_OUTCNT; /*=========================================================================== - * ±ê־λ + * ��־λ *===========================================================================*/ uint8_t loop1_INI_LOOP; uint8_t loop1_CAP_OK; @@ -144,48 +145,48 @@ uint8_t loop1_FLAG_PLUSE; uint8_t loop1_FLAG_PLUSE_IN_F = 0; uint8_t loop1_FLAG_PLUSE_IN = 0; uint8_t loop1_FLAG_CUT; -uint8_t loop1_FLAG_HOLD_TIMEOUT; // ÓÐÏÞ´æÔÚ³¬Ê± +uint8_t loop1_FLAG_HOLD_TIMEOUT; // ���޴��ڳ�ʱ /*=========================================================================== - * °²È«¸´Î» + * ��ȫ��λ *===========================================================================*/ uint8_t loop1_LC_HOLD = 0; uint8_t loop1_LC_Reset = 0; uint32_t LC_Hold_CNT = 0; /*=========================================================================== - * ÐÂË㷨״̬ (DLD154V4B ÒÆÖ²) + * ���㷨״̬ (DLD154V4B ��ֲ) *===========================================================================*/ -uint8_t g_loop_stable = 0; // ÏßȦÊýÖµÒÑÎȶ¨ (0=Îȶ¨ÆÚÖÐ, 1=Îȶ¨) -uint16_t loop1_stable_cnt = 0; // Îȶ¨ÆÚÑù±¾¼ÆÊý -uint8_t loop1_entry_cnt = 0; // ½øÈëÈ·ÈϼÆÊý -uint8_t loop1_cnt_release = 0; // ¼òµ¥À뿪·À¶¶¼ÆÊý (USE_FLATNESS_EXIT=0) -uint16_t loop1_freeze_cnt = 0; // »ùÏß¶³½á³ÖÐø¼ÆÊý -uint32_t loop1_freeze_ref = 0; // ¶³½áÎȶ¨ÐԲο¼Öµ +uint8_t g_loop_stable = 0; // ��Ȧ��ֵ���ȶ� (0=�ȶ�����, 1=�ȶ�) +uint16_t loop1_stable_cnt = 0; // �ȶ����������� +uint8_t loop1_entry_cnt = 0; // ����ȷ�ϼ��� +uint8_t loop1_cnt_release = 0; // ���뿪�������� (USE_FLATNESS_EXIT=0) +uint16_t loop1_freeze_cnt = 0; // ���߶���������� +uint32_t loop1_freeze_ref = 0; // �����ȶ��Բο�ֵ #if USE_FLATNESS_EXIT -uint8_t g_exit_state = 0; // 0=×·×ÙÆÂÃæ, 1=µÈ´ýƽ̹ -uint16_t g_max_slope = 0; // µÚÒ»ÉÏÉýÆÂÃæ×î´ó |f'| -uint16_t g_max_slope_rate = 0; // µÚÒ»ÉÏÉýÆÂÃæ×î´ó |f''| -uint16_t g_delta2 = 0; // Ò»½×ƽ̹ãÐÖµ -uint16_t g_delta3 = 0; // ¶þ½×ƽ̹ãÐÖµ -int32_t g_prev_capvd = 0; // ÉÏÒ»Ö¡ CAPVD (²î·ÖÓÃ) -int32_t g_prev_first_deriv = 0; // ÉÏÒ»Ö¡Ò»½×µ¼Êý -uint8_t g_slope_flat_cnt = 0; // бÂÊÇ÷ÁãÁ¬Ðø¼ÆÊý -uint8_t g_flat_ok_cnt = 0; // ƽ̹Ìõ¼þÂú×ãÁ¬Ðø¼ÆÊý +uint8_t g_exit_state = 0; // 0=׷������, 1=�ȴ�ƽ̹ +uint16_t g_max_slope = 0; // ��һ����������� |f'| +uint16_t g_max_slope_rate = 0; // ��һ����������� |f''| +uint16_t g_delta2 = 0; // һ��ƽ̹��ֵ +uint16_t g_delta3 = 0; // ����ƽ̹��ֵ +int32_t g_prev_capvd = 0; // ��һ֡ CAPVD (�����) +int32_t g_prev_first_deriv = 0; // ��һ֡һ�׵��� +uint8_t g_slope_flat_cnt = 0; // ������������� +uint8_t g_flat_ok_cnt = 0; // ƽ̹���������������� #endif -/* »·¾³»îÔ¾¶È (¹© BLE condition ×Ö¶ÎÉϱ¨, Ìæ´ú¾É flt_mgr.cnt_not_idle) */ +/* ������Ծ�� (�� BLE condition �ֶ��ϱ�, ����� flt_mgr.cnt_not_idle) */ uint8_t g_env_activity = 0; uint32_t g_env_prev_capvd = 0; /*=========================================================================== - * ³ö³§ÁéÃô¶ÈĬÈϱí (дÈë g_loop_sens_list, ÔËÐÐʱÒÔ g_loop_sens_list Ϊ׼) - * ½øÈëãÐÖµ = Origin * sens_in / 65536; À뿪ãÐÖµ = Origin * sens_out / 65536 + * ����������Ĭ�ϱ� (� g_loop_sens_list, ����ʱ�� g_loop_sens_list Ϊ׼) + * ������ֵ = Origin * sens_in / 65536; �뿪��ֵ = Origin * sens_out / 65536 *===========================================================================*/ const uint16_t SensTable[MAX_LOOP_SENS_AMOUNT] = { 108, 54, 28}; const uint16_t SensTable1[MAX_LOOP_SENS_AMOUNT] = {81, 32, 16}; -uint16_t g_loop_out_delay = 10; // À뿪ÑÓʱ, 50ms Ϊµ¥Î», ÓÉ delay_time ÅäÖà +uint16_t g_loop_out_delay = 10; // �뿪��ʱ, 50ms Ϊ��λ, �� delay_time ���� DBN_BLE_State g_dbn_ble_state_acs_enable = {0}; Loop_ACS_Info g_loop_acs_info = {0,}; @@ -193,7 +194,7 @@ Loop_ACS_Info g_loop_acs_info = {0,}; float g_freq_tmp = 0.0; -/* ÓÃÓÚAPPÅжÏÎļþÓÐЧÐÔ */ +/* ����APP�ж��ļ���Ч�� */ const uint32_t Address = 0xFFFFFFFF; __attribute__((aligned(4))) uint32_t Image_Flag __attribute__((section(".ImageFlag"))) = (uint32_t)&Address; @@ -263,7 +264,7 @@ void poll_sens_key(void) static uint8_t _last_sens = 3; #if DEBUG - g_freq_sens = 2; // ĬÈÏ×î¸ßÁéÃô¶È + g_freq_sens = 2; // Ĭ����������� #else if(KEY_SA1){ if(KEY_SA2){ @@ -285,7 +286,7 @@ void poll_sens_key(void) } if(_last_sens != g_freq_sens){ - /* ÁéÃô¶ÈãÐֵÿÖÜÆÚÓÉ g_loop_sens_list ʵʱ¼ÆËã, ÎÞÐèÖØÔØ */ + /* ��������ֵÿ������ g_loop_sens_list ʵʱ����, �������� */ _last_sens = g_freq_sens; } @@ -309,7 +310,7 @@ void para_store_init(void) poll_sens_key(); - g_loop_out_delay = g_loop_cng_unit.delay_time * 2; // ¶¨Ê±Æ÷ÒÔ 50ms Ϊµ¥Î», ÑÓʱÒÔ100msΪµ¥Î» + g_loop_out_delay = g_loop_cng_unit.delay_time * 2; // ��ʱ���� 50ms Ϊ��λ, ��ʱ��100msΪ��λ g_hold_time = g_loop_cng_unit.exist_mode * 30 * 20; //50ms/per, 30s g_safe_max_cnt = g_loop_cng_unit.loopSafe_Timeout * 10 * (1000 / 50); g_freq_level = g_loop_cng_unit.loopFreq_Level - 1; @@ -322,23 +323,23 @@ void para_store_init(void) switch(g_freq_level) { case 0: { - // ¸ßƵ + // ��Ƶ FLEVEL_H_LOW; FLEVEL_L_LOW; } break; case 1: { - // ÖÐ¸ß + // �и� FLEVEL_H_LOW; FLEVEL_L_HIGH; } break; case 2: { - // ÖÐµÍ + // �е� FLEVEL_H_HIGH; FLEVEL_L_LOW; } break; case 3: { - // µÍƵ + // ��Ƶ FLEVEL_H_HIGH; FLEVEL_L_HIGH; } break; default:{ - // ĬÈÏµÍÆµ + // Ĭ�ϵ�Ƶ g_freq_level = 3; FLEVEL_H_HIGH; FLEVEL_L_HIGH; } break; @@ -360,7 +361,7 @@ void para_store_init(void) void tm_init(void){ - // Cap ²¶»ñ + // Cap ���� GPIOA_ResetBits(GPIO_Pin_9); GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeIN_Floating); @@ -372,29 +373,29 @@ void tm_init(void){ // TMR1 - TMR1_TimerInit(FREQ_SYS / 200); // ÉèÖö¨Ê±Ê±¼ä 5ms - TMR1_ITCfg(ENABLE, TMR0_3_IT_CYC_END); // ¿ªÆôÖÐ¶Ï + TMR1_TimerInit(FREQ_SYS / 200); // ���ö�ʱʱ�� 5ms + TMR1_ITCfg(ENABLE, TMR0_3_IT_CYC_END); // �����ж� PFIC_EnableIRQ(TMR1_IRQn); } void gpio_uart_init(void) { - /* ÅäÖô®¿Ú0£ºÏÈÅäÖÃIO¿Úģʽ£¬ÔÙÅäÖô®¿Ú */ + /* ����0��������IO��ģʽ�������ô��� */ #ifdef DEBUG GPIOPinRemap(ENABLE, RB_PIN_UART0); GPIOA_SetBits(GPIO_Pin_14); - GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP_5mA); // TXD-ÅäÖÃÍÆÍìÊä³ö£¬×¢ÒâÏÈÈÃIO¿ÚÊä³ö¸ßµçƽ + GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP_5mA); // TXD-�������������ע������IO������ߵ�ƽ UART0_BaudRateCfg(230400); //115200 - R8_UART0_FCR = (2 << 6) | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; // FIFO´ò¿ª£¬´¥·¢µã4×Ö½Ú + R8_UART0_FCR = (2 << 6) | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; // FIFO�ò¿ª£ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½4�ֽ� R8_UART0_LCR = RB_LCR_WORD_SZ; R8_UART0_IER = RB_IER_TXD_EN; R8_UART0_DIV = 1; - GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeIN_PU); // ²¦¶¯¿ª¹Ø£¬µ÷½ÚÁéÃô¶È + GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeIN_PU); // �������أ����������� #else - GPIOA_ModeCfg(GPIO_Pin_15|GPIO_Pin_14, GPIO_ModeIN_PU); // ²¦¶¯¿ª¹Ø£¬µ÷½ÚÁéÃô¶È + GPIOA_ModeCfg(GPIO_Pin_15|GPIO_Pin_14, GPIO_ModeIN_PU); // �������أ����������� #endif @@ -413,7 +414,7 @@ void gpio_uart_init(void) /*=========================================================================== - * Ò»½× IIR µÍͨÂ˲¨Æ÷ (¶ÔÆë M1H ¹«Ê½) + * һ�� IIR ��ͨ�˲��� (���� M1H ��ʽ) * CAPVD_new = a * new_value + (1-a) * CAPVD_old, a = Flt_Reg/256 *===========================================================================*/ uint32_t get_flt_value(uint32_t new_value, uint32_t last_Value) { @@ -432,8 +433,8 @@ uint32_t get_flt_value(uint32_t new_value, uint32_t last_Value) { /*=========================================================================== - * »¬¶¯Æ½¾ù»ùÏ߸üР- * ×¢Òâ: window ±ØÐëÊÇ uint16_t (WINDOW_ORIGIN=500 > 255, uint8_t »á¾²Ä¬½Ø¶Ï) + * ����ƽ�����߸��� + * ע��: window ������ uint16_t (WINDOW_ORIGIN=500 > 255, uint8_t �ᾲĬ�ض�) *===========================================================================*/ void update_moving_average(uint32_t* p_sum, uint16_t* p_cnt, uint32_t* p_origin, uint32_t new_value, uint16_t window) { if (!p_sum || !p_cnt || !p_origin || window == 0) { @@ -452,8 +453,8 @@ void update_moving_average(uint32_t* p_sum, uint16_t* p_cnt, uint32_t* p_origin, /*=========================================================================== - * ³õʼ»¯ËùÓмì²â״̬ (Éϵç / ÓÐÏÞ´æÔÚ³¬Ê± / ÏßÈ¦ÖØÁ¬ ʱµ÷ÓÃ) - * ×¢Òâ: ²»¸´Î» g_loop_power_up_state / g_loop_cut_amount (BLE Éϱ¨ÓÃ) + * ��ʼ�����м��״̬ (�ϵ� / ���޴��ڳ�ʱ / ��Ȧ���� ʱ����) + * ע��: ����λ g_loop_power_up_state / g_loop_cut_amount (BLE �ϱ���) *===========================================================================*/ void INIT_VD(void) { @@ -493,7 +494,7 @@ void INIT_VD(void) loop1_LC_Reset = 0; LC_Hold_CNT = 0; - /* ÐÂË㷨״̬ */ + /* ���㷨״̬ */ g_loop_stable = 0; loop1_stable_cnt = 0; loop1_entry_cnt = 0; @@ -519,7 +520,7 @@ void INIT_VD(void) /*=========================================================================== - * ³µÁ¾À뿪 / ÊÍ·Å ¹«¹²´¦Àí + * �����뿪 / �ͷ� �������� *===========================================================================*/ static void loop_release_common(void) { @@ -539,19 +540,19 @@ static void loop_release_common(void) /*=========================================================================== - * vd1_task -- ºËÐļì²âËã·¨ (ÒÆÖ² DLD154V4B, ÿ´Î CAP_OK µ÷ÓÃ, ~8.74ms) + * vd1_task -- ���ļ���㷨 (��ֲ DLD154V4B, ÿ�� CAP_OK ����, ~8.74ms) * - * Á÷³Ì: - * 1. IIR Â˲¨ + бÂÊÏÞ·ù - * 2. Îȶ¨ÆÚ: С´°¿Ú¿ìËÙÊÕÁ²»ùÏß - * 3. ÎÞ³µ: »ùÏ߸ú×Ù (¶³½á±£»¤) + ½øÈëÈ·ÈÏ - * 4. Óгµ: ƽ̹ÐÔÈýÌõ¼þÀ뿪Åж¨ (´øÖÍ»Ø) + * ����: + * 1. IIR �˲� + б���޷� + * 2. �ȶ���: С���ڿ����������� + * 3. �޳�: ���߸��� (���ᱣ��) + ����ȷ�� + * 4. �г�: ƽ̹���������뿪�ж� (���ͻ�) *===========================================================================*/ void vd1_task(void){ if (loop1_Origin == 0) return; - /*--- 1. IIR Â˲¨ + бÂÊÏÞ·ù ---*/ + /*--- 1. IIR �˲� + б���޷� ---*/ if (loop1_CAPVD == 0) { loop1_CAPVD = loop1_Value; } else { @@ -565,7 +566,7 @@ void vd1_task(void){ loop1_CAPVD = get_flt_value(clamped_value, loop1_CAPVD); } - /*--- 2. Îȶ¨ÆÚ: ÈÆ¹ý IIR/бÂÊÏÞ·ù, С´°¿Ú¿ìËÙÊÕÁ² ---*/ + /*--- 2. �ȶ���: �ƹ� IIR/б���޷�, С���ڿ������� ---*/ if (!g_loop_stable) { loop1_CAPVD = loop1_Value; update_moving_average(&loop1_ORG_SUM, &loop1_ORG_CNT, &loop1_Origin, loop1_CAPVD, 100); @@ -577,19 +578,17 @@ void vd1_task(void){ return; } - /*--- 3. BLE Éϱ¨×´Ì¬Ë¢Ð (flag_change ÖÃλÆÚ¼ä¶³½á, ±£³Öʼþʱ¿ÌµÄÖµ) ---*/ + /*--- 3. BLE �ϱ�״̬ˢ�� (flag_change ��λ�ڼ䶳��, �����¼�ʱ�̵�ֵ) ---*/ if (g_loop_acs_info.flag_change == 0) { int32_t _var = (int32_t)loop1_Origin - (int32_t)loop1_CAPVD; g_loop_acs_info.loop_capvd = loop1_CAPVD; - if (_var > 32767) _var = 32767; - if (_var < -32768) _var = -32768; - g_loop_acs_info.variation = (int16_t)_var; + g_loop_acs_info.variation = _var; if (g_flag_bt_state && (_var > VARIATION_EVENT_TH || _var < -VARIATION_EVENT_TH)) { g_loop_acs_info.flag_event = 1; } } - /*--- 4. »·¾³»îÔ¾¶È (BLE condition ×Ö¶Î, 0~15) ---*/ + /*--- 4. ������Ծ�� (BLE condition �ֶ�, 0~15) ---*/ { int32_t d = (int32_t)loop1_CAPVD - (int32_t)g_env_prev_capvd; if (d < 0) d = -d; @@ -603,7 +602,7 @@ void vd1_task(void){ if (!loop1_VD_FLAG) { /*================================================================ - * ÎÞ³µ×´Ì¬: »ùÏ߸ú×Ù (¶³½á±£»¤) + ½øÈëÈ·ÈÏ + * �޳�״̬: ���߸��� (���ᱣ��) + ����ȷ�� *================================================================*/ loop1_dlt_ORG = ((uint32_t)loop1_Origin * g_loop_sens_list.sens[g_freq_sens].sens_in) >> 16; { @@ -612,7 +611,7 @@ void vd1_task(void){ loop1_freeze_cnt = 0; update_moving_average(&loop1_ORG_SUM, &loop1_ORG_CNT, &loop1_Origin, loop1_CAPVD, WINDOW_ORIGIN); } else { - /*--- CAPVD Ò쳣ƫ¸ß: ÔÝÍ£¸ú×Ù, ¶³½á³¬Ê± + Îȶ¨ÐÔË«Ìõ¼þ ---*/ + /*--- CAPVD �쳣ƫ��: ��ͣ����, ���ᳬʱ + �ȶ���˫���� ---*/ if (loop1_freeze_cnt == 0) { loop1_freeze_ref = loop1_CAPVD; } else { @@ -625,7 +624,7 @@ void vd1_task(void){ } loop1_freeze_cnt++; if (loop1_freeze_cnt >= FREEZE_TIMEOUT) { - loop1_Origin = loop1_CAPVD; /* È·ÈÏÎȶ¨µÄг£Ì¬ */ + loop1_Origin = loop1_CAPVD; /* ȷ���ȶ����³�̬ */ loop1_freeze_cnt = 0; loop1_freeze_ref = 0; } @@ -634,7 +633,7 @@ void vd1_task(void){ } } - /*--- ½øÈëÈ·ÈÏ: Á¬Ðø ENTRY_CONFIRM ´ÎµÍÓÚãÐÖµ²ÅÅÐÓгµ ---*/ + /*--- ����ȷ��: ���� ENTRY_CONFIRM �ε�����ֵ�����г� ---*/ if (loop1_CAPVD < (loop1_Origin - loop1_dlt_ORG)) { loop1_entry_cnt++; if (loop1_entry_cnt >= ENTRY_CONFIRM) { @@ -645,11 +644,11 @@ void vd1_task(void){ loop1_VD_FLAG = 1; loop1_FLAG_IN = 1; - if (g_loop_cng_unit.exist_mode) { /* ÓÐÏÞ´æÔÚ */ + if (g_loop_cng_unit.exist_mode) { /* ���޴��� */ loop1_VD_HOLD = 1; Hold_CNT = 0; } - if (g_loop_cng_unit.loopSafe_Timeout) { /* ÏßȦ°²È«Ä£Ê½: Æô¶¯°²È«¸´Î»¼ÆÊ± */ + if (g_loop_cng_unit.loopSafe_Timeout) { /* ��Ȧ��ȫģʽ: ������ȫ��λ��ʱ */ loop1_LC_HOLD = 1; LC_Hold_CNT = 0; } else { @@ -667,7 +666,7 @@ void vd1_task(void){ g_loop_acs_info.car_state = 1; #if USE_FLATNESS_EXIT - /* ÖØÖÃÆ½Ì¹ÐÔ״̬ (רÀû CN200910309382) */ + /* ����ƽ̹��״̬ (ר�� CN200910309382) */ g_exit_state = 0; g_max_slope = 0; g_max_slope_rate = 0; @@ -686,8 +685,8 @@ void vd1_task(void){ else { #if USE_FLATNESS_EXIT /*================================================================ - * Óгµ×´Ì¬: ƽ̹ÐÔÈýÌõ¼þÅж¨À뿪 (רÀû CN200910309382) - * ·ùÖµãÐÖµ°´Ð²âÁ¿»ù×¼ 2^19 Ëõ·Å (DLD154V4B: 100/5/2 @2^17) + * �г�״̬: ƽ̹���������ж��뿪 (ר�� CN200910309382) + * ��ֵ��ֵ���²�����׼ 2^19 ���� (DLD154V4B: 100/5/2 @2^17) *================================================================*/ #define K1 8 #define K2 8 @@ -704,7 +703,7 @@ void vd1_task(void){ abs_sd = (second_deriv >= 0) ? second_deriv : -second_deriv; if (g_exit_state == 0) { - /*--- ½×¶Î0: ×·×ÙµÚÒ»ÉÏÉýÆÂÃæ, ×ÔÊÊÓ¦¼ÆËãÆ½Ì¹ãÐÖµ ---*/ + /*--- �׶�0: ׷�ٵ�һ��������, ����Ӧ����ƽ̹��ֵ ---*/ if (abs_fd > (int32_t)g_max_slope) g_max_slope = (uint16_t)abs_fd; if (abs_sd > (int32_t)g_max_slope_rate) g_max_slope_rate = (uint16_t)abs_sd; if (abs_fd < SLOPE_FLAT_THRESH) { @@ -721,7 +720,7 @@ void vd1_task(void){ g_slope_flat_cnt = 0; } } else { - /*--- ½×¶Î1: ·ùÖµ»Ø¹é + Ò»½×ƽ̹ + ¶þ½×ƽ̹ ÈýÌõ¼þÈ·ÈÏÀ뿪 ---*/ + /*--- �׶�1: ��ֵ�ع� + һ��ƽ̹ + ����ƽ̹ ������ȷ���뿪 ---*/ int32_t dev = (int32_t)loop1_CAPVD - (int32_t)loop1_Origin; int32_t cond1 = (dev >= 0) ? dev : -dev; loop1_dlt_ORG = ((uint32_t)loop1_Origin * g_loop_sens_list.sens[g_freq_sens].sens_out) >> 16; @@ -741,7 +740,7 @@ void vd1_task(void){ g_prev_first_deriv = first_deriv; #else /*================================================================ - * Óгµ×´Ì¬: ¼òµ¥ÖÍ»Ø + ·À¶¶À뿪 + * �г�״̬: ���ͻ� + �����뿪 *================================================================*/ loop1_dlt_ORG = ((uint32_t)loop1_Origin * g_loop_sens_list.sens[g_freq_sens].sens_out) >> 16; @@ -760,33 +759,33 @@ void vd1_task(void){ /*=========================================================================== - * cjq_srv -- ³µ¼ìÆ÷Ö÷Ñ­»··þÎñ - * - ÓÐÏÞ´æÔÚ³¬Ê± / ÏßȦ¶Ï¿ªÖØÁ¬: È«¸´Î»Öؽ¨»ùÏß - * (ÏßȦÈÔ±»Õ¼ÓÃʱ, лùÏßÂäÔÚÕ¼ÓÃÖµÉÏ, ¼ÌµçÆ÷±£³ÖÊÍ·Å -- ¶ÔÆë M1H ÐÐΪ) - * - CAP_OK µ½´ïʱִÐкËÐļì²âËã·¨ + * cjq_srv -- ��������ѭ������ + * - ���޴��ڳ�ʱ / ��Ȧ�Ͽ�����: ȫ��λ�ؽ����� + * (��Ȧ�Ա�ռ��ʱ, �»�������ռ��ֵ��, �̵��������ͷ� -- ���� M1H ��Ϊ) + * - CAP_OK ����ʱִ�к��ļ���㷨 *===========================================================================*/ void cjq_srv(void){ if(loop1_LOOP_OK){ if(loop1_FLAG_HOLD_TIMEOUT){ - /* ÓÐÏÞ´æÔÚ³¬Ê±: È«¸´Î», ÖØÐ¾­ÀúÎȶ¨ÆÚÖØ½¨»ùÏß */ + /* ���޴��ڳ�ʱ: ȫ��λ, ���¾����ȶ����ؽ����� */ INIT_VD(); return; } if(loop1_FLAG_CUT){ - /* ÏßȦ¶Ï¿ªºóÖØÁ¬: È«¸´Î», ÖØÐÂ×ÔÊÊÓ¦²âÁ¿´°²¢Öؽ¨»ùÏß */ + /* ��Ȧ�Ͽ�������: ȫ��λ, ��������Ӧ���������ؽ����� */ g_loop_cut_last = 0; INIT_VD(); return; } if(!loop1_LOOP_OK0){ - DelayMs(200); /* ÏßÈ¦ÖØÐÂÆðÕñºóµÈ´ý 200ms ÔÙÏû·ÑÊý¾Ý */ + DelayMs(200); /* ��Ȧ���������ȴ� 200ms ���������� */ loop1_LOOP_OK0 = 1; } if(loop1_CAP_OK){ loop1_CAP_OK = 0; if(!g_loop_power_up_state){ - g_loop_power_up_state = 1; // ±íʾÁ¬½ÓÁËÏßȦ + g_loop_power_up_state = 1; // ��ʾ��������Ȧ } vd1_task(); poll_sens_key(); @@ -801,7 +800,7 @@ void cjq_srv(void){ loop1_FLAG_PLUSE_IN_F = 0; loop1_FLAG_PLUSE_IN = 0; - // ÏßȦ¶Ï¿ª: ¼ÌµçÆ÷ÊÍ·Å, ³µÁ¾×´Ì¬ÇåÁã + // ��Ȧ�Ͽ�: �̵����ͷ�, ����״̬���� RLY1_OFF; RLY2_OFF; g_loop_acs_info.relay1_state = 0; g_loop_acs_info.relay2_state = 0; @@ -826,7 +825,7 @@ void cjq_srv(void){ /********************************************************************* * @fn Main_Circulation * - * @brief Ö÷Ñ­»· + * @brief ��ѭ�� * * @return none */ @@ -845,7 +844,7 @@ void Main_Circulation() cjq_srv(); if(g_flag_bt_state == 0){ - // Èç¹ûÀ¶ÑÀ¶Ï¿ª£¬Ö÷¶¯Éϱ¨ÐèÒª½ûÓà + // ��������Ͽ��������ϱ���Ҫ���� if(g_dbn_ble_state_acs_enable.enable){ g_dbn_ble_state_acs_enable.enable = 0; } @@ -869,7 +868,7 @@ void Main_Circulation() /********************************************************************* * @fn main * - * @brief Ö÷º¯Êý + * @brief ������ * * @return none */ @@ -909,15 +908,15 @@ int main(void) /* @fn TMR0_IRQHandler * -* @brief TMR0 ÊäÈë²¶»ñÖÐ¶Ï -- ÏßȦƵÂʲâÁ¿ -* FallEdge_To_FallEdge ģʽ, CAPGetData Ö±½Ó¸ø³öÏàÁÚϽµÑØÖÜÆÚ Xn -* ÀÛ¼Ó LPCNT ´Î -> Ò»¸ö²âÁ¿´° Value (~= MEASUREMENT_BASE) +* @brief TMR0 ���벶���ж� -- ��ȦƵ�ʲ��� +* FallEdge_To_FallEdge ģʽ, CAPGetData ֱ�Ӹ��������½������� Xn +* �ۼ� LPCNT �� -> һ�������� Value (~= MEASUREMENT_BASE) * * @return none */ __INTERRUPT __HIGH_CODE -void TMR0_IRQHandler(void) // TMR0 ²¶»ñÖÐ¶Ï +void TMR0_IRQHandler(void) // TMR0 �����ж� { if(TMR0_GetITFlag(TMR0_3_IT_DATA_ACT)){ loop1_Xn = (uint16_t)TMR0_CAPGetData(); @@ -938,12 +937,12 @@ void TMR0_IRQHandler(void) // TMR0 loop1_CapCnt++; if(loop1_INI_LOOP){ - /*--- ³õʼ»¯½×¶Î ---*/ + /*--- ��ʼ���׶� ---*/ if(loop1_LPCNT == 0){ - if(loop1_CapCnt > 200){ /* Éϵç/»»ÆµºóµÈ´ýÕñµ´Îȶ¨ */ + if(loop1_CapCnt > 200){ /* �ϵ�/��Ƶ��ȴ����ȶ� */ uint32_t lpcnt = (uint32_t)MEASUREMENT_BASE / loop1_Xn; if(lpcnt == 0 || lpcnt > 65535){ - lpcnt = 100; /* Òì³£ Xn ±£»¤ */ + lpcnt = 100; /* �쳣 Xn ���� */ } loop1_LPCNT = (uint16_t)lpcnt; @@ -955,7 +954,7 @@ void TMR0_IRQHandler(void) // TMR0 } } else{ - /* µÚÒ»¸ö²âÁ¿´°: Ö±½Ó×÷Ϊ»ùÏß Origin */ + /* ��һ��������: ֱ����Ϊ���� Origin */ loop1_CapSum += loop1_Xn; if(loop1_CapCnt >= loop1_LPCNT){ loop1_CAPVD = loop1_CapSum; @@ -971,7 +970,7 @@ void TMR0_IRQHandler(void) // TMR0 } }// end if loop1_INI_LOOP else { - /*--- Õý³£ÔËÐÐ: ÀÛ¼Óµ½²âÁ¿´° ---*/ + /*--- ��������: �ۼӵ������� ---*/ loop1_CapSum += loop1_Xn; if(loop1_CapCnt >= loop1_LPCNT){ @@ -992,7 +991,7 @@ void TMR0_IRQHandler(void) // TMR0 /********************************************************************* * @fn TMR1_IRQHandler * - * @brief TMR1 ¶¨Ê±ÖÐ¶Ï 5ms/per -- ʱÐò״̬»ú / ¼ÌµçÆ÷Êä³ö / LED + * @brief TMR1 ��ʱ�ж� 5ms/per -- ʱ��״̬�� / �̵������ / LED * * @return none */ @@ -1022,7 +1021,7 @@ void TMR1_IRQHandler(void) TimingDelayInc++; u32CountWdt++; - /*--- LED: Îȶ¨ÆÚ 200ms ¿ìÉÁ; ÏßȦ¶Ï¿ª 150ms ¿ìÉÁ ---*/ + /*--- LED: �ȶ��� 200ms ����; ��Ȧ�Ͽ� 150ms ���� ---*/ if(loop1_FLAG_CUT == 0) { if(!g_loop_stable) @@ -1049,12 +1048,12 @@ void TMR1_IRQHandler(void) if(TM1cnt >= 10) //about=50ms { TM1cnt = 0; - if(loop1_FLAG_IN) // ÏßȦ1 ´ÓÎÞ³µµ½Óгµ + if(loop1_FLAG_IN) // ��Ȧ1 ���޳����г� { loop1_FLAG_OUT = 0; loop1_OUTCNT = 0; loop1_FLAG_IN = 0; - if(g_loop_cng_unit.output_mode == 1) // ½øÈëÂö³å + if(g_loop_cng_unit.output_mode == 1) // �������� { loop1_FLAG_PLUSE_IN_F = 1; } @@ -1084,7 +1083,7 @@ void TMR1_IRQHandler(void) } - if(loop1_FLAG_OUT) // ´ÓÓгµµ½ÎÞ³µµÄ±êÖ¾ + if(loop1_FLAG_OUT) // ���г����޳��ı�־ { loop1_OUTCNT++; if(loop1_OUTCNT > g_loop_out_delay) @@ -1110,13 +1109,13 @@ void TMR1_IRQHandler(void) if(loop1_VD_HOLD) { Hold_CNT++; - if(Hold_CNT > g_hold_time) // ³¬¹ýÓÐÏÞ´æÔÚʱ¼ä + if(Hold_CNT > g_hold_time) // �������޴���ʱ�� { loop1_VD_HOLD = 0; Hold_CNT = 0; if(loop1_VD_FLAG) { - /* ÓÐÏÞ´æÔÚ³¬Ê±: Êͷż̵çÆ÷, Ö÷Ñ­»·È«¸´Î»Öؽ¨»ùÏß */ + /* ���޴��ڳ�ʱ: �ͷż̵���, ��ѭ��ȫ��λ�ؽ����� */ loop1_FLAG_HOLD_TIMEOUT = 1; RLY1_OFF; RLY2_OFF; g_loop_acs_info.relay1_state = 0; @@ -1130,7 +1129,7 @@ void TMR1_IRQHandler(void) LC_Hold_CNT++; if(LC_Hold_CNT > g_safe_max_cnt) { - /* °²È«¸´Î»: ÖØÐ³õʼ»¯²âÁ¿, ÖØ½¨»ùÏß (¶ÔÆë M1H) */ + /* ��ȫ��λ: ���³�ʼ������, �ؽ����� (���� M1H) */ loop1_LC_Reset = 1; loop1_INI_LOOP = 1; loop1_LOOP_OK0 = 0; @@ -1150,7 +1149,7 @@ void TMR1_IRQHandler(void) } } - /*--- ÏßÈ¦ÔØ²¨¼ì²â & ¼ÌµçÆ÷Êä³öˢР(ÿ 5ms) ---*/ + /*--- ��Ȧ�ز���� & �̵������ˢ�� (ÿ 5ms) ---*/ if(loop1_RF_FLAG) { loop1_LOOP_OK = 1; @@ -1159,10 +1158,10 @@ void TMR1_IRQHandler(void) if(loop1_LC_Reset == 0) { switch(g_loop_cng_unit.output_mode) - { // Êä³ö·½Ê½ - case 0: // ´æÔÚÊä³ö + { // �����ʽ + case 0: // ������� { - if(loop1_VD_FLAG | loop1_FLAG_OUT)// Êä³ö´æÔÚÐźŠ+ if(loop1_VD_FLAG | loop1_FLAG_OUT)// ��������ź� { RLY1_ON; g_loop_acs_info.relay1_state = 1; @@ -1177,9 +1176,9 @@ void TMR1_IRQHandler(void) g_loop_acs_info.relay2_state = 0; } } break; - case 1: // ½øÈëÂö³å + case 1: // �������� { - if(loop1_VD_FLAG) // ¼ÌµçÆ÷2´æÔÚÐźŠ+ if(loop1_VD_FLAG) // �̵���2�����ź� { RLY2_ON; g_loop_acs_info.relay2_state = 1; @@ -1201,9 +1200,9 @@ void TMR1_IRQHandler(void) g_loop_acs_info.relay1_state = 0; } } break; - case 2: // À뿪Âö³å + case 2: // �뿪���� { - if(loop1_VD_FLAG) // ¼ÌµçÆ÷2´æÔÚÐźŠ+ if(loop1_VD_FLAG) // �̵���2�����ź� { RLY2_ON; g_loop_acs_info.relay2_state = 1; @@ -1214,7 +1213,7 @@ void TMR1_IRQHandler(void) g_loop_acs_info.relay2_state = 0; } - if(loop1_FLAG_PLUSE) // Êä³öÀ뿪Âö³å + if(loop1_FLAG_PLUSE) // ����뿪���� { RLY1_ON; g_loop_acs_info.relay1_state = 1; @@ -1226,7 +1225,7 @@ void TMR1_IRQHandler(void) } } break; default: { - if(loop1_VD_FLAG) // ¼ÌµçÆ÷2´æÔÚÐźŠ+ if(loop1_VD_FLAG) // �̵���2�����ź� { RLY2_ON; g_loop_acs_info.relay2_state = 1; @@ -1248,7 +1247,7 @@ void TMR1_IRQHandler(void) - TMR1_ClearITFlag(TMR0_3_IT_CYC_END); // Çå³ýÖжϱêÖ¾ + TMR1_ClearITFlag(TMR0_3_IT_CYC_END); // ����жϱ�־ } }