我开始使用 Contiki 并为我的暑期实习学习 c 编程。我必须计算冰箱功率正在进行的过程的平均值。我做了这样的代码
#include <stdlib.h>
#include <stdio.h>
#include <homadeus/processes/fridge_process.h>
#include <homadeus/devices/78M6610.h>
#include <homadeus/utils/utils.h>
float global_variable;
int current_state = 0; //down =0, up =1
float current_power = 0;
int sample[n];
float get_instant_power()
{
double scaled_value = MAXIM_78M6610_SCALING_RESOLUTION_POWER_WATTS * maxim_78M6610_get_register_int24(MAXIM_78M6610_P);
if (scaled_value>0) return scaled_value;
else return 0;
}
float get_sum()
{ float sum = 0;
float mean;
while(1){
for(int i=1; i<n ; i++){
sample[i]=get_instant_power();
sum +=sample[i];
}
}
}
int get_current_state()
{
current_power = get_instant_power();
if(current_power < 0) return 0;
else return 1;
}
PROCESS(hmd_fridge_process, HOMADEUS_FRIDGE_PROCESS_DESCRIPTION);
PROCESS_THREAD(hmd_fridge_process, ev, data) {
static struct etimer timer;
PROCESS_BEGIN();
while(1){
start = clock();
etimer_set(&timer, CLOCK_CONF_SECOND);
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&timer));
......
}
}
PROCESS_END();
}
它如何获得权力的价值已经被处理了。每隔一秒,它就会显示消耗的电量(get_instant_power())。我不知道如何开始和结束样本编号。如果我从 1 开始,那么它应该如何直到?另外,是否可以将功率存储在数组中以进行累积?