Merge pull request #190 from devMashHub/master

Fix Issue #185.
This commit is contained in:
Stephen White 2020-12-27 12:37:50 +11:00 committed by GitHub
commit 9c1f8320d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 32 additions and 4 deletions

View file

@ -132,9 +132,13 @@ GraphIEC = 1
// //
// Please see dmRotary.h for full implementation details. // Please see dmRotary.h for full implementation details.
// //
// Updated to address issue #185 and allow for inversion of rotary operation
// for certain encoders. - 08/13/2020 by Geo...
//
//RotaryEncoderEnable = 1 //RotaryEncoderEnable = 1
//RotaryEncoderInvert = 1
// This option will display the temperature of the Pi's CPU. // This option will display the temperature of the Pi's CPU.
// It should be about 52°C anything above 65°C is bad and there is something wrong with your hardware // It should be about 52<EFBFBD>C anything above 65<36>C is bad and there is something wrong with your hardware
//DisplayTemperature = 1 //DisplayTemperature = 1

View file

@ -74,7 +74,8 @@ unsigned IEC_Bus::gplev0;
//ROTARY: Added for rotary encoder support - 09/05/2019 by Geo... //ROTARY: Added for rotary encoder support - 09/05/2019 by Geo...
RotaryEncoder IEC_Bus::rotaryEncoder; RotaryEncoder IEC_Bus::rotaryEncoder;
bool IEC_Bus::rotaryEncoderEnable; bool IEC_Bus::rotaryEncoderEnable;
//ROTARY: Added for rotary encoder inversion (Issue#185) - 08/13/2020 by Geo...
bool IEC_Bus::rotaryEncoderInvert;
void IEC_Bus::ReadGPIOUserInput( int buttonCount) void IEC_Bus::ReadGPIOUserInput( int buttonCount)
{ {

View file

@ -375,7 +375,15 @@ public:
//ROTARY: Added for rotary encoder support - 09/05/2019 by Geo... //ROTARY: Added for rotary encoder support - 09/05/2019 by Geo...
if (IEC_Bus::rotaryEncoderEnable == true) if (IEC_Bus::rotaryEncoderEnable == true)
{ {
IEC_Bus::rotaryEncoder.Initialize(RPI_GPIO22, RPI_GPIO23, RPI_GPIO27); //ROTARY: Added for rotary encoder inversion (Issue#185) - 08/13/2020 by Geo...
if (IEC_Bus::rotaryEncoderInvert == true)
{
IEC_Bus::rotaryEncoder.Initialize(RPI_GPIO23, RPI_GPIO22, RPI_GPIO27);
}
else
{
IEC_Bus::rotaryEncoder.Initialize(RPI_GPIO22, RPI_GPIO23, RPI_GPIO27);
}
} }
} }
@ -670,6 +678,12 @@ public:
rotaryEncoderEnable = value; rotaryEncoderEnable = value;
} }
//ROTARY: Added for rotary encoder inversion (Issue#185) - 08/13/2020 by Geo...
static inline void SetRotaryEncoderInvert(bool value)
{
rotaryEncoderInvert = value;
}
// CA1 input ATN // CA1 input ATN
// If CA1 is ever set to output // If CA1 is ever set to output
// - CA1 will start to drive pb7 // - CA1 will start to drive pb7
@ -737,6 +751,8 @@ private:
//ROTARY: Added for rotary encoder support - 09/05/2019 by Geo... //ROTARY: Added for rotary encoder support - 09/05/2019 by Geo...
static RotaryEncoder rotaryEncoder; static RotaryEncoder rotaryEncoder;
static bool rotaryEncoderEnable; static bool rotaryEncoderEnable;
//ROTARY: Added for rotary encoder inversion (Issue#185) - 08/13/2020 by Geo...
static bool rotaryEncoderInvert;
}; };
#endif #endif

View file

@ -1940,6 +1940,8 @@ extern "C"
IEC_Bus::SetIgnoreReset(options.IgnoreReset()); IEC_Bus::SetIgnoreReset(options.IgnoreReset());
//ROTARY: Added for rotary encoder support - 09/05/2019 by Geo... //ROTARY: Added for rotary encoder support - 09/05/2019 by Geo...
IEC_Bus::SetRotaryEncoderEnable(options.RotaryEncoderEnable()); IEC_Bus::SetRotaryEncoderEnable(options.RotaryEncoderEnable());
//ROTARY: Added for rotary encoder inversion (Issue#185) - 08/13/2020 by Geo...
IEC_Bus::SetRotaryEncoderInvert(options.RotaryEncoderInvert());
#if not defined(EXPERIMENTALZERO) #if not defined(EXPERIMENTALZERO)
if (!options.SoundOnGPIO()) if (!options.SoundOnGPIO())
{ {

View file

@ -159,7 +159,7 @@ Options::Options(void)
, buttonBack(4) , buttonBack(4)
, buttonInsert(5) , buttonInsert(5)
, rotaryEncoderEnable(0) //ROTARY: , rotaryEncoderEnable(0) //ROTARY:
, rotaryEncoderInvert(0) //ROTARY:
{ {
autoMountImageName[0] = 0; autoMountImageName[0] = 0;
strcpy(ROMFontName, "chargen"); strcpy(ROMFontName, "chargen");
@ -251,6 +251,7 @@ void Options::Process(char* buffer)
ELSE_CHECK_DECIMAL_OPTION(buttonBack) ELSE_CHECK_DECIMAL_OPTION(buttonBack)
ELSE_CHECK_DECIMAL_OPTION(buttonInsert) ELSE_CHECK_DECIMAL_OPTION(buttonInsert)
ELSE_CHECK_DECIMAL_OPTION(rotaryEncoderEnable) //ROTARY: ELSE_CHECK_DECIMAL_OPTION(rotaryEncoderEnable) //ROTARY:
ELSE_CHECK_DECIMAL_OPTION(rotaryEncoderInvert) //ROTARY:
else if ((strcasecmp(pOption, "AutoBaseName") == 0)) else if ((strcasecmp(pOption, "AutoBaseName") == 0))
{ {
strncpy(autoBaseName, pValue, 255); strncpy(autoBaseName, pValue, 255);

View file

@ -109,6 +109,8 @@ public:
//ROTARY: Added for rotary encoder support - 09/05/2019 by Geo... //ROTARY: Added for rotary encoder support - 09/05/2019 by Geo...
inline unsigned int RotaryEncoderEnable() const { return rotaryEncoderEnable; } inline unsigned int RotaryEncoderEnable() const { return rotaryEncoderEnable; }
//ROTARY: Added for rotary encoder inversion (Issue#185) - 08/13/2020 by Geo...
inline unsigned int RotaryEncoderInvert() const { return rotaryEncoderInvert; }
// Page up and down will jump a different amount based on the maximum number rows displayed. // Page up and down will jump a different amount based on the maximum number rows displayed.
// Perhaps we should use some keyboard modifier to the the other screen? // Perhaps we should use some keyboard modifier to the the other screen?
@ -191,6 +193,8 @@ private:
//ROTARY: Added for rotary encoder support - 09/05/2019 by Geo... //ROTARY: Added for rotary encoder support - 09/05/2019 by Geo...
unsigned int rotaryEncoderEnable; unsigned int rotaryEncoderEnable;
//ROTARY: Added for rotary encoder inversion (Issue#185) - 08/13/2020 by Geo...
unsigned int rotaryEncoderInvert;
}; };
#endif #endif