diff --git a/app/drivers/sensor/ma730/ma730.c b/app/drivers/sensor/ma730/ma730.c index 7a8280a0..b95b1a96 100644 --- a/app/drivers/sensor/ma730/ma730.c +++ b/app/drivers/sensor/ma730/ma730.c @@ -103,8 +103,8 @@ static int ma730_sample_fetch(const struct device *dev, enum sensor_channel chan if (ma730_spi_read_data(dev, &val)) { return -EIO } + data->oldangle = data->angle; data->angle = val; - } static int ma730_channel_get(const struct device *dev, enum sensor_channel chan, @@ -115,7 +115,8 @@ static int ma730_channel_get(const struct device *dev, enum sensor_channel chan, return -ENOTSUP; } else if (chan == SENSOR_CHAN_ROTATION) { - val->val1 = int(data->angle / (65536*resolution)); + float absang = data->angle / (65536*(cfg->resolution)/2.5) + val->val1 = int(absang); } else { //velocity code diff --git a/app/drivers/sensor/ma730/ma730.h b/app/drivers/sensor/ma730/ma730.h index 8dae36d1..b9bf561e 100644 --- a/app/drivers/sensor/ma730/ma730.h +++ b/app/drivers/sensor/ma730/ma730.h @@ -90,6 +90,7 @@ struct ma730_data { const struct device *bus; struct spi_cs_control cs_ctrl; + uint16_t oldangle; uint16_t angle; int8_t velocity; bool direction;