summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/app/i2cbench/Makefile.inc1
-rw-r--r--src/app/i2cbench/main.cc77
-rw-r--r--src/app/i2cdetect/main.cc2
-rw-r--r--src/arch/blinkenrocket/driver/i2c.cc2
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;