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:
parent
a363f37dc7
commit
ff96ed1157
@ -1 +1 @@
|
||||
#define GITHUB_SHA "TM-PORTX-20220607"
|
||||
#define GITHUB_SHA "TM-PORTX-20220607-1"
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user