diff --git a/examples/Morse/Morse_Transmit_FM/Morse_Transmit_FM.ino b/examples/Morse/Morse_Transmit_FM/Morse_Transmit_FM.ino index 3feb78bd..b4f4b417 100644 --- a/examples/Morse/Morse_Transmit_FM/Morse_Transmit_FM.ino +++ b/examples/Morse/Morse_Transmit_FM/Morse_Transmit_FM.ino @@ -28,7 +28,7 @@ // DIO0 pin: 2 // RESET pin: 9 // DIO1 pin: 3 -SX1278 radio = new Module(5, 2, 9, 3); +SX1278 radio = new Module(10, 2, 9, 3); // or using RadioShield // https://github.com/jgromes/RadioShield diff --git a/src/protocols/Morse/Morse.cpp b/src/protocols/Morse/Morse.cpp index 65f1a11d..84972590 100644 --- a/src/protocols/Morse/Morse.cpp +++ b/src/protocols/Morse/Morse.cpp @@ -137,7 +137,7 @@ size_t MorseClient::write(uint8_t b) { if(b == ' ') { RADIOLIB_DEBUG_PRINTLN(F("space")); standby(); - mod->delay(_wordSpace); + mod->waitForMicroseconds(mod->micros(), _wordSpace*1000); return(1); } @@ -156,16 +156,16 @@ size_t MorseClient::write(uint8_t b) { if (code & RADIOLIB_MORSE_DASH) { RADIOLIB_DEBUG_PRINT('-'); transmitDirect(_base, _baseHz); - mod->delay(_dashLength); + mod->waitForMicroseconds(mod->micros(), _dashLength*1000); } else { RADIOLIB_DEBUG_PRINT('.'); transmitDirect(_base, _baseHz); - mod->delay(_dotLength); + mod->waitForMicroseconds(mod->micros(), _dotLength*1000); } // symbol space standby(); - mod->delay(_dotLength); + mod->waitForMicroseconds(mod->micros(), _dotLength*1000); // move onto the next bit code >>= 1; @@ -173,7 +173,7 @@ size_t MorseClient::write(uint8_t b) { // letter space standby(); - mod->delay(_letterSpace - _dotLength); + mod->waitForMicroseconds(mod->micros(), _letterSpace*1000 - _dotLength*1000); RADIOLIB_DEBUG_PRINTLN(); return(1); diff --git a/src/protocols/Morse/Morse.h b/src/protocols/Morse/Morse.h index bfa72b52..0ae567e7 100644 --- a/src/protocols/Morse/Morse.h +++ b/src/protocols/Morse/Morse.h @@ -193,9 +193,9 @@ class MorseClient { uint32_t _base = 0, _baseHz = 0; float _basePeriod = 0.0f; - uint16_t _dotLength = 0; - uint16_t _dashLength = 0; - uint16_t _letterSpace = 0; + uint32_t _dotLength = 0; + uint32_t _dashLength = 0; + uint32_t _letterSpace = 0; uint16_t _wordSpace = 0; // variables to keep decoding state