diff options
author | Daniel Friesel <derf@finalrewind.org> | 2018-08-10 08:38:30 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2018-08-10 08:38:30 +0200 |
commit | 231fcce3dce0d83a291e0239efe13fe37ff735a8 (patch) | |
tree | e9a13f1ed6a073bc715e94ee07cac547d557ff6c /src | |
parent | 2e1d846a31bc9f45851b46ac70fa75be685a5041 (diff) |
Add i2cbench app
Diffstat (limited to 'src')
-rw-r--r-- | src/app/i2cbench/Makefile.inc | 1 | ||||
-rw-r--r-- | src/app/i2cbench/main.cc | 77 | ||||
-rw-r--r-- | src/app/i2cdetect/main.cc | 2 | ||||
-rw-r--r-- | src/arch/blinkenrocket/driver/i2c.cc | 2 |
4 files changed, 78 insertions, 4 deletions
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(); diff --git a/src/arch/blinkenrocket/driver/i2c.cc b/src/arch/blinkenrocket/driver/i2c.cc index 8979fbb..487c60e 100644 --- a/src/arch/blinkenrocket/driver/i2c.cc +++ b/src/arch/blinkenrocket/driver/i2c.cc @@ -126,8 +126,6 @@ signed char I2C::xmit(unsigned char address, unsigned char tx_len, unsigned char *tx_buf, unsigned char rx_len, unsigned char *rx_buf) { - unsigned char i; - if (tx_len) { if (i2c_start_write(address) < 0) { return -1; |