1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2025-02-22 08:46:04 +01:00

make usePWM per track (trackPWM)

This commit is contained in:
Harald Barth 2022-06-07 02:35:55 +02:00
parent a363f37dc7
commit ff96ed1157
3 changed files with 16 additions and 5 deletions

View File

@ -1 +1 @@
#define GITHUB_SHA "TM-PORTX-20220607" #define GITHUB_SHA "TM-PORTX-20220607-1"

View File

@ -121,7 +121,8 @@ class MotorDriver {
} }
bool isPWMCapable(); bool isPWMCapable();
bool canMeasureCurrent(); bool canMeasureCurrent();
static bool usePWM; bool trackPWM;
static bool usePWM; // TODO: Remove
static bool commonFaultPin; // This is a stupid motor shield which has only a common fault pin for both outputs static bool commonFaultPin; // This is a stupid motor shield which has only a common fault pin for both outputs
inline byte getFaultPin() { inline byte getFaultPin() {
return faultPin; return faultPin;

View File

@ -192,13 +192,23 @@ bool TrackManager::setTrackMode(byte trackToSet, TRACK_MODE mode, int16_t dcAddr
if (track[t]->isPWMCapable()) { if (track[t]->isPWMCapable()) {
canDo=false; canDo=false;
break; break;
} else {
track[t]->trackPWM=false;
DIAG(F("Track %c trackPWM 0 (not capable)"), t+'A');
} }
} else if (trackMode[t]==TRACK_MODE_MAIN || trackMode[t]==TRACK_MODE_PROG) } else if (trackMode[t]==TRACK_MODE_MAIN || trackMode[t]==TRACK_MODE_PROG) {
canDo &= track[t]->isPWMCapable(); track[t]->trackPWM = track[t]->isPWMCapable();
DIAG(F("Track %c trackPWM %d"), t+'A', track[t]->trackPWM);
canDo &= track[t]->trackPWM;
} }
//DIAG(F("HAMode=%d"),canDo); }
if (!canDo) { if (!canDo) {
DCCTimer::clearPWM(); DCCTimer::clearPWM();
FOR_EACH_TRACK(t) {
track[t]->trackPWM=false;
DIAG(F("Track %c trackPWM 0 (global override)"), t+'A');
}
} }
if (MotorDriver::usePWM != canDo) if (MotorDriver::usePWM != canDo)
DIAG(F("HA mode changed from %d to %d"), MotorDriver::usePWM, canDo); DIAG(F("HA mode changed from %d to %d"), MotorDriver::usePWM, canDo);