2018.4.25於306修改:函數
程序功能:手機發送測量參考值spa
實現功能:手機發送新的電壓、電流、功率參考值,設置內部從新會修改電壓、電流、功率參考值,0.01度電量脈衝參考值3d
修改位置:TIM6_Process()函數code
函數部分以下blog
void TIM6_Process(void) { //УÕýģʽ if (U8_CURR_WorkMode == D_CAL_START_MODE) { U32_Cal_Times++;//УÕýʱ¼ä36S£¬1000W¸ºÔØ36Sʱ¼äÏûºÄ0.01¶Èµç if (U32_Cal_Times == D_TIME6_CAL_TIME) //0.01¶ÈУÕýʱ¼äµ½ { U8_CURR_WorkMode = D_CAL_END_MODE; U32_Cal_Times=0; U16_REF_001_E_Pluse_CNT = U16_E_Pluse_CNT; //¼Ç¼36Sʱ¼äÄÚµÄÂö³åÊý£¬´ËÂö³åÊý±íʾ0.01¶ÈÓõçÁ¿ atk_8266_send_cmd("AT+CIPSEND=0,8","OK",20); delay_ms(10); atk_8266_send_data("УÕý½áÊø","ok",20);//1000WÉ豸УÕýÒª36s ¶ÔÓ¦0.01¡ãµç Reset_RX_STA(1); } }
上述加粗語句修改成:cmd
U16_REF_001_E_Pluse_CNT = 3600000/U16_P_REF_Data; //
U16_REF_001_E_Pluse_CNT=U16_REF_001_E_Pluse_CNT*100000/U32_P_REF_PLUSEWIDTH_TIME;class
U16_REF_001_E_Pluse_CNT = 3600000/U16_P_REF_Data; U16_REF_001_E_Pluse_CNT=U16_REF_001_E_Pluse_CNT*100000/U32_P_REF_PLUSEWIDTH_TIME;
當心大數值乘除致使的乘法溢出或者影響精度。cli
單相校準方法: 在插座上使用標準負載,如1000W,220V供電電壓,4.545A電流,而後手機鏈接插座發出的無線,做爲TCP client 鏈接192.168.4.1 端口8011,發送指令reference=10000,2200,4545便可。程序
單相插座設備測量模式:方法
(1)單週期測量模式
(2)計數脈衝測量模式
綜上所述,0.01度電的脈衝數計算公式:
U16_REF_001_E_Pluse_CNT=0.01/ECF=0.01*1000*3600/(U16_P_REF_Data*10^-1*U32_P_REF_PLUSEWIDTH_TIME*10^-6)=36*10^10/(U16_P_REF_Data*U32_P_REF_PLUSEWIDTH_TIME)
程序裏U32_P_REF_PLUSEWIDTH_TIME的單位是us因此要乘10的負六次方,U16_P_REF_Data單位不是W,U16_P_REF_Data/10纔是W。