From bbade5522d32ffd4308a439332d94b64e70ae357 Mon Sep 17 00:00:00 2001 From: Florian Olbrich Date: Thu, 14 Sep 2017 20:59:05 +0000 Subject: [PATCH] Merged in floxx/apps (pull request #107) Added a simple reader example for the LIS3DSH acceleration sensor on STM32F4Discovery * Added a simple reader example for the LIS3DSH acceleration sensor as found on STM32F4Discovery. * Edited lis3dsh_reader_main.c to obey nuttx coding standard. Approved-by: Gregory Nutt --- examples/lis3dsh_reader/Kconfig | 24 ++++++ examples/lis3dsh_reader/Make.defs | 39 +++++++++ examples/lis3dsh_reader/Makefile | 51 ++++++++++++ examples/lis3dsh_reader/lis3dsh_reader_main.c | 81 +++++++++++++++++++ 4 files changed, 195 insertions(+) create mode 100755 examples/lis3dsh_reader/Kconfig create mode 100755 examples/lis3dsh_reader/Make.defs create mode 100755 examples/lis3dsh_reader/Makefile create mode 100644 examples/lis3dsh_reader/lis3dsh_reader_main.c diff --git a/examples/lis3dsh_reader/Kconfig b/examples/lis3dsh_reader/Kconfig new file mode 100755 index 000000000..ac2bdf6d3 --- /dev/null +++ b/examples/lis3dsh_reader/Kconfig @@ -0,0 +1,24 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +config EXAMPLES_LIS3DSH_READER + bool "LIS3DSH acceleration reader example" + default n + depends on LIS3DSH + depends on SPI_EXCHANGE + ---help--- + Enable the LIS3DSH reader example + +if EXAMPLES_LIS3DSH_READER + +config EXAMPLES_LIS3DSH_READER_PROGNAME + string "Program name" + default "lis3dsh_reader" + depends on BUILD_KERNEL + ---help--- + This is the name of the program that will be use when the NSH ELF + program is installed. + +endif # EXAMPLES_LIS3DSH_READER diff --git a/examples/lis3dsh_reader/Make.defs b/examples/lis3dsh_reader/Make.defs new file mode 100755 index 000000000..da3f3bd7a --- /dev/null +++ b/examples/lis3dsh_reader/Make.defs @@ -0,0 +1,39 @@ +############################################################################ +# apps/examples/lis3dsh_reader/Make.defs +# Adds selected applications to apps/ build +# +# Copyright (C) 2017 Florian Olbrich. All rights reserved. +# Author: Florian Olbrich +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +ifeq ($(CONFIG_EXAMPLES_LIS3DSH_READER),y) +CONFIGURED_APPS += examples/lis3dsh_reader +endif diff --git a/examples/lis3dsh_reader/Makefile b/examples/lis3dsh_reader/Makefile new file mode 100755 index 000000000..99c98f9b1 --- /dev/null +++ b/examples/lis3dsh_reader/Makefile @@ -0,0 +1,51 @@ +############################################################################ +# apps/examples/lis3dsh_reader/Makefile +# +# Copyright (C) 2017 Florian Olbrich. All rights reserved. +# Author: Florian Olbrich +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +-include $(TOPDIR)/Make.defs + +APPNAME = lis3dsh_reader +PRIORITY = SCHED_PRIORITY_DEFAULT +STACKSIZE = 2048 + +# LIS3DSH reader example + +ASRCS = +CSRCS = +MAINSRC = lis3dsh_reader_main.c + +CONFIG_FLOX_IMUTEST_PROGNAME ?= lis3dsh_reader$(EXEEXT) +PROGNAME = $(CONFIG_EXAMPLES_LIS3DSH_READER_PROGNAME) + +include $(APPDIR)/Application.mk diff --git a/examples/lis3dsh_reader/lis3dsh_reader_main.c b/examples/lis3dsh_reader/lis3dsh_reader_main.c new file mode 100644 index 000000000..e21c6b2d9 --- /dev/null +++ b/examples/lis3dsh_reader/lis3dsh_reader_main.c @@ -0,0 +1,81 @@ +/* + * lis3dsh_reader_main.c + * + * Copyright (C) 2017 Florian Olbrich. All rights reserved. + * Author: Florian Olbrich + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +/**************************************************************************** + * lis3dsh_reader_main + ****************************************************************************/ + +#ifdef CONFIG_BUILD_KERNEL +int main(int argc, FAR char *argv[]) +#else +int lis3dsh_reader_main(int argc, FAR char *argv[]) +#endif +{ + FILE *acc; + acc = fopen("/dev/acc0", "r"); + + struct acc_data_t + { + int16_t x; + int16_t y; + int16_t z; + } acc_data; + + for (uint8_t i = 0; 1; i++) + { + fread( &acc_data, 6, 1, acc ); + printf("x: %4d y: %4d z: %4d \r", acc_data.x, acc_data.y, acc_data.z); + usleep(300); + } + + fclose(acc); + + return EXIT_SUCCESS; +}