From 51051da4e85ae296bedb6d3709947e5311deee07 Mon Sep 17 00:00:00 2001 From: Abel Tim Date: Mon, 3 Jun 2024 17:38:19 +0200 Subject: update com --- comm/i2c/i2c_arduino_master/i2c_arduino_master.ino | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 comm/i2c/i2c_arduino_master/i2c_arduino_master.ino (limited to 'comm/i2c/i2c_arduino_master') diff --git a/comm/i2c/i2c_arduino_master/i2c_arduino_master.ino b/comm/i2c/i2c_arduino_master/i2c_arduino_master.ino new file mode 100644 index 0000000..ff960ed --- /dev/null +++ b/comm/i2c/i2c_arduino_master/i2c_arduino_master.ino @@ -0,0 +1,36 @@ +#include +#define BAUD_RATE 19200 +#define CHAR_BUF 128 + +void setup() { + Serial.begin(BAUD_RATE); + Wire.begin(); + delay(1000); // Give the OpenMV Cam time to bootup. +} + +void loop() { + int32_t temp = 0; + char buff[CHAR_BUF] = {0}; + + Wire.requestFrom(0x12, 2); + if(Wire.available() == 2) { // got length? + + temp = Wire.read() | (Wire.read() << 8); + delay(1); // Give some setup time... + + Wire.requestFrom(0x12, temp); + if(Wire.available() == temp) { // got full message? + + temp = 0; + while(Wire.available()) buff[temp++] = Wire.read(); + + } else { + while(Wire.available()) Wire.read(); // Toss garbage bytes. + } + } else { + while(Wire.available()) Wire.read(); // Toss garbage bytes. + } + + Serial.print(buff); + delay(1); // Don't loop to quickly. +} -- cgit v1.2.3