You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by vi...@apache.org on 2017/02/24 19:38:22 UTC

[27/50] incubator-mynewt-core git commit: Adding lsm303dlhc test code to slinky

Adding lsm303dlhc test code to slinky

- Adding support for arduino_zero
- Changing shell output to be integer instead of float since
  baslibc does not support printing float.
- Using I2C_5 to talk to LSM303 on the arduino(Device driver creation
  required in the bsp)


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/d983810d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/d983810d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/d983810d

Branch: refs/heads/develop
Commit: d983810dbded549a3f2e9cebe631ac1dc2686a5f
Parents: 2681044
Author: Vipul Rahane <vi...@apache.org>
Authored: Tue Jan 24 18:25:45 2017 -0800
Committer: Vipul Rahane <vi...@apache.org>
Committed: Tue Jan 24 18:25:45 2017 -0800

----------------------------------------------------------------------
 apps/slinky/pkg.yml                             |  1 +
 apps/slinky/src/main.c                          | 46 +++++++++++++++++---
 .../lsm303dlhc/include/lsm303dlhc/lsm303dlhc.h  |  1 +
 hw/sensor/src/sensor_shell.c                    |  6 +--
 4 files changed, 46 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d983810d/apps/slinky/pkg.yml
----------------------------------------------------------------------
diff --git a/apps/slinky/pkg.yml b/apps/slinky/pkg.yml
index 52a08ef..8515446 100644
--- a/apps/slinky/pkg.yml
+++ b/apps/slinky/pkg.yml
@@ -32,6 +32,7 @@ pkg.deps:
     - kernel/os
     - hw/sensor
     - hw/drivers/sensors/sim
+    - hw/drivers/sensors/lsm303dlhc
     - boot/bootutil
     - sys/shell
     - sys/config

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d983810d/apps/slinky/src/main.c
----------------------------------------------------------------------
diff --git a/apps/slinky/src/main.c b/apps/slinky/src/main.c
index 27d6177..cd585a4 100755
--- a/apps/slinky/src/main.c
+++ b/apps/slinky/src/main.c
@@ -30,7 +30,7 @@
 #include <stats/stats.h>
 #include <config/config.h>
 #include <sensor/sensor.h>
-#include <sim/sim_accel.h>
+#include <lsm303dlhc/lsm303dlhc.h>
 #include "flash_map/flash_map.h"
 #include <hal/hal_system.h>
 #if MYNEWT_VAL(SPLIT_LOADER)
@@ -235,11 +235,47 @@ init_tasks(void)
             TASK2_PRIO, OS_WAIT_FOREVER, pstack, TASK2_STACK_SIZE);
 }
 
+#ifdef ARCH_arduino_zero
 static int
-config_sim_sensor(void)
+config_sensor(void)
 {
     struct os_dev *dev;
-    struct sim_accel_cfg cfg;
+    struct lsm303dlhc_cfg cfg;
+    int rc;
+
+    dev = (struct os_dev *) os_dev_open("accel0", OS_TIMEOUT_NEVER, NULL);
+    assert(dev != NULL);
+
+    rc = lsm303dlhc_init(dev, NULL);
+    if (rc != 0) {
+        os_dev_close(dev);
+        goto err;
+    }
+
+    /* read once per sec.  API should take this value in ms. */
+    cfg.accel_rate = LSM303DLHC_ACCEL_RATE_1;
+    cfg.accel_range = LSM303DLHC_ACCEL_RANGE_2;
+
+    rc = lsm303dlhc_config((struct lsm303dlhc *) dev, &cfg);
+    if (rc != 0) {
+        os_dev_close(dev);
+        goto err;
+    }
+
+    os_dev_close(dev);
+
+    return (0);
+err:
+    return (rc);
+}
+#endif
+
+#ifdef ARCH_sim
+static int
+config_sensor(void)
+{
+    struct os_dev *dev;
+    struct cfg;
     int rc;
 
     dev = (struct os_dev *) os_dev_open("simaccel0", OS_TIMEOUT_NEVER, NULL);
@@ -268,7 +304,7 @@ config_sim_sensor(void)
 err:
     return (rc);
 }
-
+#endif
 
 /**
  * main
@@ -323,7 +359,7 @@ main(int argc, char **argv)
     }
 #endif
 
-    config_sim_sensor();
+    config_sensor();
 
     /*
      * As the last thing, process events from default event queue.

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d983810d/hw/drivers/sensors/lsm303dlhc/include/lsm303dlhc/lsm303dlhc.h
----------------------------------------------------------------------
diff --git a/hw/drivers/sensors/lsm303dlhc/include/lsm303dlhc/lsm303dlhc.h b/hw/drivers/sensors/lsm303dlhc/include/lsm303dlhc/lsm303dlhc.h
index 8bc3307..453097b 100644
--- a/hw/drivers/sensors/lsm303dlhc/include/lsm303dlhc/lsm303dlhc.h
+++ b/hw/drivers/sensors/lsm303dlhc/include/lsm303dlhc/lsm303dlhc.h
@@ -22,6 +22,7 @@
 
 #include "os/os.h"
 #include "os/os_dev.h"
+#include "sensor/sensor.h"
 
 #ifdef __cplusplus
 extern "C" {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d983810d/hw/sensor/src/sensor_shell.c
----------------------------------------------------------------------
diff --git a/hw/sensor/src/sensor_shell.c b/hw/sensor/src/sensor_shell.c
index 1cf9613..a5ee643 100644
--- a/hw/sensor/src/sensor_shell.c
+++ b/hw/sensor/src/sensor_shell.c
@@ -95,13 +95,13 @@ sensor_shell_read_listener(struct sensor *sensor, void *arg, void *data)
     if (ctx->type == SENSOR_TYPE_ACCELEROMETER) {
         sad = (struct sensor_accel_data *) data;
         if (sad->sad_x != SENSOR_ACCEL_DATA_UNUSED) {
-            console_printf("x = %f, ", sad->sad_x);
+            console_printf("x = %x, ", (uint32_t)sad->sad_x * 1000000000);
         }
         if (sad->sad_y != SENSOR_ACCEL_DATA_UNUSED) {
-            console_printf("y = %f, ", sad->sad_y);
+            console_printf("y = %x, ", (uint32_t)sad->sad_y * 1000000000);
         }
         if (sad->sad_z != SENSOR_ACCEL_DATA_UNUSED) {
-            console_printf("z = %f", sad->sad_z);
+            console_printf("z = %x.", (uint32_t)sad->sad_z * 1000000000);
         }
         console_printf("\n");
     }