1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2025-02-21 08:16: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 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
inline byte getFaultPin() {
return faultPin;

View File

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