34 lines
929 B
C
34 lines
929 B
C
#include <stdint.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include "power_inout.h"
|
|
|
|
#include "MMC56x3.h"
|
|
|
|
power_conf_t* get_power_configuration(nvs_handle_t nvs){
|
|
power_conf_t* conf = malloc(sizeof(power_conf_t));
|
|
power_data_t* data = malloc(sizeof(power_data_t));
|
|
conf->data = data;
|
|
return conf;
|
|
}
|
|
|
|
void update_magfield_readings(power_data_t* data){
|
|
int32_t bx, by, bz;
|
|
MMC56x3_get_mag_field(&bx, &by, &bz);
|
|
MMC56x3_to_pT(bx, by, bz, &data->bx, &data->by, &data->bz);
|
|
}
|
|
|
|
void update_magfield_readings_cal(power_data_t* data){
|
|
int32_t bx, by, bz;
|
|
MMC56x3_get_mag_field(&bx, &by, &bz);
|
|
bx+=data->bridge_offset[0];
|
|
by+=data->bridge_offset[1];
|
|
bz+=data->bridge_offset[2];
|
|
MMC56x3_to_pT(bx, by, bz, &data->bx, &data->by, &data->bz);
|
|
}
|
|
|
|
void update_bridge_offset(power_data_t* data){
|
|
MMC56x3_get_bridge_offset(&data->bridge_offset[0], &data->bridge_offset[1], &data->bridge_offset[2]);
|
|
MMC56x3_set();
|
|
}
|