From cc145fc1a0f93c774e14ed1424e58a4085e9872e Mon Sep 17 00:00:00 2001 From: "Zachary J. Fields" Date: Thu, 21 Jan 2021 10:14:23 -0600 Subject: [PATCH] fix: delayMicroseconds intervals Updated delayMicroseconds calls to respect Arduino documentation --- library.properties | 2 +- src/NesRob_Arduino.cpp | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/library.properties b/library.properties index 18f9e30..8546e35 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=NesRob -version=1.0.0 +version=1.0.2 author=Zachary J. Fields maintainer=Zachary J. Fields sentence=Manipulates LED to signal NES R.O.B. (Robot Operating Buddy) diff --git a/src/NesRob_Arduino.cpp b/src/NesRob_Arduino.cpp index d46abbe..1a54df1 100644 --- a/src/NesRob_Arduino.cpp +++ b/src/NesRob_Arduino.cpp @@ -16,14 +16,25 @@ NesRob::blinkCommand ( Command command_ ) { // Send initialization sequence - ::delayMicroseconds(66666); // 0000 (required delay between commands) + // Max delay of 16383 guaranteed by Arduino reference + // https://www.arduino.cc/reference/en/language/functions/time/delaymicroseconds/ + { + ::delayMicroseconds(16383); + ::delayMicroseconds(16383); + ::delayMicroseconds(16383); + ::delayMicroseconds(16383); + ::delayMicroseconds(1134); + } // 0000 (required delay between commands) { ::digitalWrite(_led_pin, HIGH); ::delayMicroseconds(1500); ::digitalWrite(_led_pin, LOW); ::delayMicroseconds(15166); } // 1 - ::delayMicroseconds(16666); // 0 + { + ::delayMicroseconds(16383); + ::delayMicroseconds(283); + } // 0 // Flash command sequence for (int i = 7 ; i >= 0 ; --i) {