add DDM100TC measurement calculation

This commit is contained in:
King Kévin 2017-01-20 11:41:41 +01:00
parent 290dfd153b
commit 881fcc6061
1 changed files with 5 additions and 0 deletions

5
main.c
View File

@ -525,6 +525,7 @@ void main(void)
if ((ticks_time%(QUERY_PERIOD))==0) { // query period passed
printf("query meter measurements (%lu.%02lu:%02lu:%02lu)\n", ticks_time/(60*60*24), (ticks_time/(60*60))%24, (ticks_time%(60*60))/60, (ticks_time%60));
gpio_clear(GPIO(LED_QUERY_PORT), GPIO(LED_QUERY_PIN)); // switch on query LED
// start getting all PZEM-004T measurements from all meters
pzem_meter = 0; // reset PZEM meter number
pzem_measurement = 0; // reset PZEM measurement index
@ -533,6 +534,10 @@ void main(void)
sdm120_meter = 0; // reset SDM120 meter number
sdm120_measurement = 0; // reset SDM120 measurement index
sensor_sdm120_measurement_request(1+sdm120_meter, sdm120_measurement); // request first measurement
// show DDM100TC measurements (base on number of pulses and interval)
printf("DDM100TC meter energy: %lu Wh\n", (uint32_t)((ddm100tc_pulses*(uint64_t)1000)/1600)); // the meter has 1600 impulses/kWh (use 64-bit calculation to not overflow after 2684354 Wh)
printf("DDM100TC meter power: %lu W\n", (uint32_t)(((rcc_ahb_frequency*(double)1.0)/((uint32_t)TIM_PSC(TIM(DDM100TC_TIMER))+1))*(3600*1000/1600)/ddm100tc_interval)); // calculate with floating point for precision
}
}
while (pzem_meter>=LENGTH(pzem_measurements) && sdm120_meter>=LENGTH(sdm120_measurements)) { // all measurements received for all meter