aboutsummaryrefslogtreecommitdiffstats
path: root/os/ex
diff options
context:
space:
mode:
authorroccomarco <roccomarco@110e8d01-0319-4d1e-a829-52ad28d1bb01>2018-03-14 19:30:08 +0000
committerroccomarco <roccomarco@110e8d01-0319-4d1e-a829-52ad28d1bb01>2018-03-14 19:30:08 +0000
commit6198d6d9657a050f7393af68cb7059a7462f5ef2 (patch)
tree2faebb7d394925138a67c3b790ef2abc80f4bb0a /os/ex
parentb88dd92734686f6427514a215d545ab4725ca07b (diff)
downloadChibiOS-6198d6d9657a050f7393af68cb7059a7462f5ef2.tar.gz
ChibiOS-6198d6d9657a050f7393af68cb7059a7462f5ef2.tar.bz2
ChibiOS-6198d6d9657a050f7393af68cb7059a7462f5ef2.zip
Completed LSM303AGR driver
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11755 110e8d01-0319-4d1e-a829-52ad28d1bb01
Diffstat (limited to 'os/ex')
-rw-r--r--os/ex/ST/lsm303agr.c67
-rw-r--r--os/ex/ST/lsm303agr.h18
2 files changed, 9 insertions, 76 deletions
diff --git a/os/ex/ST/lsm303agr.c b/os/ex/ST/lsm303agr.c
index e0357e7ad..5620826dd 100644
--- a/os/ex/ST/lsm303agr.c
+++ b/os/ex/ST/lsm303agr.c
@@ -314,78 +314,22 @@ static msg_t acc_reset_sensivity(void *ip) {
if(devp->config->accfullscale == LSM303AGR_ACC_FS_2G) {
for(i = 0; i < LSM303AGR_ACC_NUMBER_OF_AXES; i++) {
-#if LSM303AGR_ACC_USE_ADVANCED
- if(devp->config->accmode == LSM303AGR_ACC_MODE_NORM)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_NORM_2G;
- else if(devp->config->accmode == LSM303AGR_ACC_MODE_LPOW)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_LPOW_2G;
- else if(devp->config->accmode == LSM303AGR_ACC_MODE_HRES)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_HRES_2G;
- else {
- osalDbgAssert(FALSE, "acc_reset_sensivity(), accelerometer mode issue");
- msg = MSG_RESET;
- return msg;
- }
-#else
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_NORM_2G;
-#endif
+ devp->accsensitivity[i] = LSM303AGR_ACC_SENS_2G;
}
}
else if(devp->config->accfullscale == LSM303AGR_ACC_FS_4G) {
for(i = 0; i < LSM303AGR_ACC_NUMBER_OF_AXES; i++) {
-#if LSM303AGR_ACC_USE_ADVANCED
- if(devp->config->accmode == LSM303AGR_ACC_MODE_NORM)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_NORM_4G;
- else if(devp->config->accmode == LSM303AGR_ACC_MODE_LPOW)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_LPOW_4G;
- else if(devp->config->accmode == LSM303AGR_ACC_MODE_HRES)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_HRES_4G;
- else {
- osalDbgAssert(FALSE, "acc_reset_sensivity(), accelerometer mode issue");
- msg = MSG_RESET;
- return msg;
- }
-#else
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_NORM_4G;
-#endif
+ devp->accsensitivity[i] = LSM303AGR_ACC_SENS_4G;
}
}
else if(devp->config->accfullscale == LSM303AGR_ACC_FS_8G) {
for(i = 0; i < LSM303AGR_ACC_NUMBER_OF_AXES; i++) {
-#if LSM303AGR_ACC_USE_ADVANCED
- if(devp->config->accmode == LSM303AGR_ACC_MODE_NORM)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_NORM_8G;
- else if(devp->config->accmode == LSM303AGR_ACC_MODE_LPOW)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_LPOW_8G;
- else if(devp->config->accmode == LSM303AGR_ACC_MODE_HRES)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_HRES_8G;
- else {
- osalDbgAssert(FALSE, "acc_reset_sensivity(), accelerometer mode issue");
- msg = MSG_RESET;
- return msg;
- }
-#else
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_NORM_8G;
-#endif
+ devp->accsensitivity[i] = LSM303AGR_ACC_SENS_8G;
}
}
else if(devp->config->accfullscale == LSM303AGR_ACC_FS_16G) {
for(i = 0; i < LSM303AGR_ACC_NUMBER_OF_AXES; i++) {
-#if LSM303AGR_ACC_USE_ADVANCED
- if(devp->config->accmode == LSM303AGR_ACC_MODE_NORM)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_NORM_16G;
- else if(devp->config->accmode == LSM303AGR_ACC_MODE_LPOW)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_LPOW_16G;
- else if(devp->config->accmode == LSM303AGR_ACC_MODE_HRES)
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_HRES_16G;
- else {
- osalDbgAssert(FALSE, "acc_reset_sensivity(), accelerometer mode issue");
- msg = MSG_RESET;
- return msg;
- }
-#else
- devp->accsensitivity[i] = LSM303AGR_ACC_SENS_NORM_16G;
-#endif
+ devp->accsensitivity[i] = LSM303AGR_ACC_SENS_16G;
}
}
else {
@@ -803,8 +747,7 @@ void lsm303agrStart(LSM303AGRDriver *devp, const LSM303AGRConfig *config) {
cr[4] = devp->config->accfullscale;
#if LSM303AGR_ACC_USE_ADVANCED || defined(__DOXYGEN__)
cr[4] |= devp->config->accendianess |
- devp->config->accblockdataupdate |
- devp->config->acchighresmode;
+ devp->config->accblockdataupdate;
if(devp->config->accmode == LSM303AGR_ACC_MODE_HRES)
cr[4] |= LSM303AGR_CTRL_REG4_A_HR;
#endif
diff --git a/os/ex/ST/lsm303agr.h b/os/ex/ST/lsm303agr.h
index 4f3447044..74ddc058b 100644
--- a/os/ex/ST/lsm303agr.h
+++ b/os/ex/ST/lsm303agr.h
@@ -76,20 +76,10 @@
#define LSM303AGR_ACC_8G 8.0f
#define LSM303AGR_ACC_16G 16.0f
-#define LSM303AGR_ACC_SENS_HRES_2G 1.02f
-#define LSM303AGR_ACC_SENS_HRES_4G 0.5128f
-#define LSM303AGR_ACC_SENS_HRES_8G 0.25641f
-#define LSM303AGR_ACC_SENS_HRES_16G 0.08532f
-
-#define LSM303AGR_ACC_SENS_NORM_2G 0.25641f
-#define LSM303AGR_ACC_SENS_NORM_4G 0.12787f
-#define LSM303AGR_ACC_SENS_NORM_8G 0.06397f
-#define LSM303AGR_ACC_SENS_NORM_16G 0.02132f
-
-#define LSM303AGR_ACC_SENS_LPOW_2G 0.06398f
-#define LSM303AGR_ACC_SENS_LPOW_4G 0.03199f
-#define LSM303AGR_ACC_SENS_LPOW_8G 0.01599f
-#define LSM303AGR_ACC_SENS_LPOW_16G 0.00533f
+#define LSM303AGR_ACC_SENS_2G 0.060f
+#define LSM303AGR_ACC_SENS_4G 0.120f
+#define LSM303AGR_ACC_SENS_8G 0.240f
+#define LSM303AGR_ACC_SENS_16G 0.750f
#define LSM303AGR_ACC_BIAS 0.0f
/** @} */