add magnetometer

This commit is contained in:
2024-05-15 23:26:06 -06:00
parent 1c2b904160
commit e0a90fd875
2 changed files with 96 additions and 6 deletions

View File

@ -91,7 +91,7 @@ int main(void)
uint8_t ppt;
uint8_t font_width;
uint8_t font_height;
struct sensor_value voltage, current, pressure, temperature, accel_x, accel_y, accel_z, accel_z_ref, gyro_x, gyro_y, gyro_z, humidity;
struct sensor_value voltage, current, pressure, temperature, accel_x, accel_y, accel_z, accel_z_ref, gyro_x, gyro_y, gyro_z, mag_x, mag_y, mag_z, humidity;
char str_v[15] = {0};
char str_i[15] = {0};
@ -104,6 +104,9 @@ int main(void)
char str_gx[16] = {0};
char str_gy[16] = {0};
char str_gz[16] = {0};
char str_mx[16] = {0};
char str_my[16] = {0};
char str_mz[16] = {0};
char str_h[16] = {0};
LOG_INF("Starting Mellifera version %s...", APP_VERSION_STRING);
@ -267,6 +270,18 @@ int main(void)
{
LOG_ERR("Could not get gyro");
}
if (sensor_channel_get(imu, SENSOR_CHAN_MAGN_X, &mag_x) < 0)
{
LOG_ERR("Could not get mag");
}
if (sensor_channel_get(imu, SENSOR_CHAN_MAGN_Y, &mag_y) < 0)
{
LOG_ERR("Could not get mag");
}
if (sensor_channel_get(imu, SENSOR_CHAN_MAGN_Z, &mag_z) < 0)
{
LOG_ERR("Could not get mag");
}
if (sensor_sample_fetch(lis) < 0)
{
@ -300,21 +315,24 @@ int main(void)
sprintf(str_gx, "GX:%+7.3f", gyro_x.val1 + gyro_x.val2 * 1e-6);
sprintf(str_gy, "GY:%+7.3f", gyro_y.val1 + gyro_y.val2 * 1e-6);
sprintf(str_gz, "GZ:%+7.3f", gyro_z.val1 + gyro_z.val2 * 1e-6);
sprintf(str_mx, "MX:%+7.3f", mag_x.val1 + mag_x.val2 * 1e-6);
sprintf(str_my, "MY:%+7.3f", mag_y.val1 + mag_y.val2 * 1e-6);
sprintf(str_mz, "MZ:%+7.3f", mag_z.val1 + mag_z.val2 * 1e-6);
sprintf(str_az_ref, "Zr:%+7.3f", accel_z_ref.val1 + accel_z_ref.val2 * 1e-6);
sprintf(str_h, "H :%7.3f", humidity.val1 + humidity.val2 * 1e-6);
// LOG_INF("%s\t%s\t%s\t%s", str_v, str_i, str_p, str_t);
cfb_framebuffer_clear(display, false);
if (cfb_print(display, str_gx, 0, 0))
if (cfb_print(display, str_mx, 0, 0))
{
LOG_ERR("Failed to print a string");
}
if (cfb_print(display, str_gy, 0, 16))
if (cfb_print(display, str_my, 0, 16))
{
LOG_ERR("Failed to print a string");
}
if (cfb_print(display, str_gz, 0, 16 * 2))
if (cfb_print(display, str_mz, 0, 16 * 2))
{
LOG_ERR("Failed to print a string");
}