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");
}