From 231fcce3dce0d83a291e0239efe13fe37ff735a8 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 10 Aug 2018 08:38:30 +0200 Subject: Add i2cbench app --- src/app/i2cbench/Makefile.inc | 1 + src/app/i2cbench/main.cc | 77 +++++++++++++++++++++++++++++++++++++++++++ src/app/i2cdetect/main.cc | 2 -- 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 src/app/i2cbench/Makefile.inc create mode 100644 src/app/i2cbench/main.cc (limited to 'src/app') diff --git a/src/app/i2cbench/Makefile.inc b/src/app/i2cbench/Makefile.inc new file mode 100644 index 0000000..d0337fc --- /dev/null +++ b/src/app/i2cbench/Makefile.inc @@ -0,0 +1 @@ +arch_drivers += ,i2c diff --git a/src/app/i2cbench/main.cc b/src/app/i2cbench/main.cc new file mode 100644 index 0000000..5825c0b --- /dev/null +++ b/src/app/i2cbench/main.cc @@ -0,0 +1,77 @@ +#include "arch.h" +#include "driver/gpio.h" +#include "driver/stdout.h" +#if defined(MULTIPASS_ARCH_HAS_I2C) && !defined(DRIVER_SOFTI2C) +#include "driver/i2c.h" +#else +#include "driver/soft_i2c.h" +#endif +#ifdef DRIVER_LM75 +#include "driver/lm75.h" +#endif +#ifdef DRIVER_AM2320 +#include "driver/am2320.h" +#endif +#ifdef DRIVER_EEPROM24LC64 +#include "driver/eeprom24lc64.h" +#endif +#ifdef DRIVER_MAX44009 +#include "driver/max44009.h" +#endif +#ifdef DRIVER_MMSIMPLE +#include "driver/mmsimple.h" +#endif + +void loop(void) +{ +#ifdef DRIVER_LM75 + kout.printf_float(lm75.getTemp()); + kout << endl; +#endif +#ifdef DRIVER_AM2320 + am2320.read(); + if (am2320.getStatus() == 0) { + kout.printf_float(am2320.getTemp()); + kout << " degC @ "; + kout.printf_float(am2320.getHumidity()); + kout << " rel%" << endl; + } else { + kout << "AM2320 error " << dec << am2320.getStatus() << endl; + } +#endif +#ifdef DRIVER_MAX44009 + kout.printf_float(max44009.getLux()); + kout << endl; +#endif +#ifdef DRIVER_EEPROM24LC64 + char buf[33]; + static unsigned short page = 0; + eeprom24lc64.readPage(page, buf); + buf[32] = '\0'; + kout << "Address " << page << ": " << buf << endl; + page = (page + 32) % (256*32); +#endif +#ifdef DRIVER_MMSIMPLE + moody.toggleBlue(); +#endif +} + +unsigned int i2c_status[128 / (8 * sizeof(unsigned int)) + 1]; + +int main(void) +{ + + arch.setup(); + gpio.setup(); + kout.setup(); + + if (i2c.setup() != 0) { + return 1; + } + + kout << "I2C setup OK" << endl; + + arch.idle_loop(); + + return 0; +} diff --git a/src/app/i2cdetect/main.cc b/src/app/i2cdetect/main.cc index 02b236e..4ec49d9 100644 --- a/src/app/i2cdetect/main.cc +++ b/src/app/i2cdetect/main.cc @@ -73,7 +73,6 @@ int main(void) kout << "I2C setup OK" << endl; - /* for (unsigned char i = 0; i < sizeof(i2c_status)/sizeof(unsigned int); i++) { i2c_status[i] = 0; } @@ -96,7 +95,6 @@ int main(void) } } kout << endl; - */ arch.idle_loop(); -- cgit v1.2.3