From 39e80d0f880559dbd25e7deb853b1d894b3eb55a Mon Sep 17 00:00:00 2001 From: Rodrigo Alfonso Date: Fri, 14 Feb 2025 05:58:12 -0300 Subject: [PATCH] Moving setMultiPlayMode to public API --- lib/LinkRawCable.hpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/LinkRawCable.hpp b/lib/LinkRawCable.hpp index 3f4eef4..b6a2510 100644 --- a/lib/LinkRawCable.hpp +++ b/lib/LinkRawCable.hpp @@ -106,7 +106,7 @@ class LinkRawCable { this->asyncState = AsyncState::IDLE; this->asyncData = EMPTY_RESPONSE; - setMultiPlayMode(); + setMultiPlayMode(baudRate); isEnabled = true; } @@ -255,6 +255,17 @@ class LinkRawCable { static void stopTransfer() { setBitLow(BIT_START); } static void setInterruptsOn() { setBitHigh(BIT_IRQ); } static void setInterruptsOff() { setBitLow(BIT_IRQ); } + static void setMultiPlayMode(BaudRate baudRate) { + Link::_REG_RCNT = Link::_REG_RCNT & ~(1 << BIT_GENERAL_PURPOSE_HIGH); + Link::_REG_SIOCNT = 1 << BIT_MULTIPLAYER; + Link::_REG_SIOCNT |= (int)baudRate; + Link::_REG_SIOMLT_SEND = 0; + } + static void setGeneralPurposeMode() { + Link::_REG_SIOMLT_SEND = 0; + Link::_REG_RCNT = (Link::_REG_RCNT & ~(1 << BIT_GENERAL_PURPOSE_LOW)) | + (1 << BIT_GENERAL_PURPOSE_HIGH); + } // ------------- private: @@ -263,19 +274,6 @@ class LinkRawCable { Response asyncData = EMPTY_RESPONSE; volatile bool isEnabled = false; - void setMultiPlayMode() { - Link::_REG_RCNT = Link::_REG_RCNT & ~(1 << BIT_GENERAL_PURPOSE_HIGH); - Link::_REG_SIOCNT = 1 << BIT_MULTIPLAYER; - Link::_REG_SIOCNT |= (int)baudRate; - Link::_REG_SIOMLT_SEND = 0; - } - - void setGeneralPurposeMode() { - Link::_REG_SIOMLT_SEND = 0; - Link::_REG_RCNT = (Link::_REG_RCNT & ~(1 << BIT_GENERAL_PURPOSE_LOW)) | - (1 << BIT_GENERAL_PURPOSE_HIGH); - } - static bool isBitHigh(u8 bit) { return (Link::_REG_SIOCNT >> bit) & 1; } static void setBitHigh(u8 bit) { Link::_REG_SIOCNT |= 1 << bit; } static void setBitLow(u8 bit) { Link::_REG_SIOCNT &= ~(1 << bit); }