diff options
| author | Abel Tim <abel@main.home> | 2024-06-03 17:38:19 +0200 |
|---|---|---|
| committer | Abel Tim <abel@main.home> | 2024-06-03 17:38:19 +0200 |
| commit | 51051da4e85ae296bedb6d3709947e5311deee07 (patch) | |
| tree | aa034dfada5c121e4e00d82d131c0d9de919cef5 /comm/spi/arduino_spi_master/arduino_spi_master.ino | |
| parent | 2f2acda8dc9fd863a1e45abca2efe185a42563d5 (diff) | |
| download | robotica-51051da4e85ae296bedb6d3709947e5311deee07.tar.gz robotica-51051da4e85ae296bedb6d3709947e5311deee07.zip | |
update com
Diffstat (limited to 'comm/spi/arduino_spi_master/arduino_spi_master.ino')
| -rw-r--r-- | comm/spi/arduino_spi_master/arduino_spi_master.ino | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/comm/spi/arduino_spi_master/arduino_spi_master.ino b/comm/spi/arduino_spi_master/arduino_spi_master.ino new file mode 100644 index 0000000..248ef0f --- /dev/null +++ b/comm/spi/arduino_spi_master/arduino_spi_master.ino @@ -0,0 +1,34 @@ +#include <SPI.h> +#define SS_PIN 10 +#define BAUD_RATE 19200 +#define CHAR_BUF 128 + +void setup() { + pinMode(SS_PIN, OUTPUT); + Serial.begin(BAUD_RATE); + SPI.begin(); + SPI.setBitOrder(MSBFIRST); + SPI.setClockDivider(SPI_CLOCK_DIV16); + SPI.setDataMode(SPI_MODE0); + delay(1000); // Give the OpenMV Cam time to bootup. +} + +void loop() { + int32_t len = 0; + char buff[CHAR_BUF] = {0}; + digitalWrite(SS_PIN, LOW); + delay(1); // Give the OpenMV Cam some time to setup to send data. + + if(SPI.transfer(1) == 85) { // saw sync char? + SPI.transfer(&len, 4); // get length + if (len) { + SPI.transfer(&buff, min(len, CHAR_BUF)); + len -= min(len, CHAR_BUF); + } + while (len--) SPI.transfer(0); // eat any remaining bytes + } + + digitalWrite(SS_PIN, HIGH); + Serial.print(buff); + delay(1); // Don't loop to quickly. +}
\ No newline at end of file |
