diff --git a/main.c b/main.c index 94ac966..a46aac6 100644 --- a/main.c +++ b/main.c @@ -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