mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2025-04-01 19:20:12 +02:00
Better warnings for pin number errors
This commit is contained in:
parent
82929245ed
commit
e81d1cc93a
@ -1 +1 @@
|
|||||||
#define GITHUB_SHA "devel-202305251144Z"
|
#define GITHUB_SHA "devel-202305290743Z"
|
||||||
|
@ -35,7 +35,7 @@ volatile portreg_t shadowPORTC;
|
|||||||
|
|
||||||
MotorDriver::MotorDriver(int16_t power_pin, byte signal_pin, byte signal_pin2, int16_t brake_pin,
|
MotorDriver::MotorDriver(int16_t power_pin, byte signal_pin, byte signal_pin2, int16_t brake_pin,
|
||||||
byte current_pin, float sense_factor, unsigned int trip_milliamps, int16_t fault_pin) {
|
byte current_pin, float sense_factor, unsigned int trip_milliamps, int16_t fault_pin) {
|
||||||
bool pinWarning = false;
|
const FSH * warnString = F("** WARNING **");
|
||||||
|
|
||||||
invertPower=power_pin < 0;
|
invertPower=power_pin < 0;
|
||||||
if (invertPower) {
|
if (invertPower) {
|
||||||
@ -97,7 +97,7 @@ MotorDriver::MotorDriver(int16_t power_pin, byte signal_pin, byte signal_pin2, i
|
|||||||
if (invertBrake)
|
if (invertBrake)
|
||||||
brake_pin = 0-brake_pin;
|
brake_pin = 0-brake_pin;
|
||||||
if (brake_pin > MAX_PIN)
|
if (brake_pin > MAX_PIN)
|
||||||
pinWarning = true;
|
DIAG(F("%S Brake pin %d > %d"), warnString, brake_pin, MAX_PIN);
|
||||||
brakePin=(byte)brake_pin;
|
brakePin=(byte)brake_pin;
|
||||||
getFastPin(F("BRAKE"),brakePin,fastBrakePin);
|
getFastPin(F("BRAKE"),brakePin,fastBrakePin);
|
||||||
// if brake is used for railcom cutout we need to do PORTX register trick here as well
|
// if brake is used for railcom cutout we need to do PORTX register trick here as well
|
||||||
@ -112,12 +112,12 @@ MotorDriver::MotorDriver(int16_t power_pin, byte signal_pin, byte signal_pin2, i
|
|||||||
ADCee::init(currentPin);
|
ADCee::init(currentPin);
|
||||||
senseOffset=0; // value can not be obtained until waveform is activated
|
senseOffset=0; // value can not be obtained until waveform is activated
|
||||||
|
|
||||||
if (faultPin != UNUSED_PIN) {
|
if (fault_pin != UNUSED_PIN) {
|
||||||
invertFault=fault_pin < 0;
|
invertFault=fault_pin < 0;
|
||||||
if (invertFault)
|
if (invertFault)
|
||||||
fault_pin = 0-fault_pin;
|
fault_pin = 0-fault_pin;
|
||||||
if (fault_pin > MAX_PIN)
|
if (fault_pin > MAX_PIN)
|
||||||
pinWarning = true;
|
DIAG(F("%S Fault pin %d > %d"), warnString, fault_pin, MAX_PIN);
|
||||||
faultPin=(byte)fault_pin;
|
faultPin=(byte)fault_pin;
|
||||||
DIAG(F("Fault pin = %d invert %d"), faultPin, invertFault);
|
DIAG(F("Fault pin = %d invert %d"), faultPin, invertFault);
|
||||||
getFastPin(F("FAULT"),faultPin, 1 /*input*/, fastFaultPin);
|
getFastPin(F("FAULT"),faultPin, 1 /*input*/, fastFaultPin);
|
||||||
@ -145,19 +145,15 @@ MotorDriver::MotorDriver(int16_t power_pin, byte signal_pin, byte signal_pin2, i
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (currentPin==UNUSED_PIN)
|
if (currentPin==UNUSED_PIN)
|
||||||
DIAG(F("** WARNING ** No current or short detection"));
|
DIAG(F("%S No current or short detection"), warnString);
|
||||||
else {
|
else {
|
||||||
DIAG(F("Track %c, TripValue=%d"), trackLetter, rawCurrentTripValue);
|
DIAG(F("Pin %d Max %dmA (%d)"), currentPin, raw2mA(rawCurrentTripValue), rawCurrentTripValue);
|
||||||
|
|
||||||
// self testing diagnostic for the non-float converters... may be removed when happy
|
// self testing diagnostic for the non-float converters... may be removed when happy
|
||||||
// DIAG(F("senseFactorInternal=%d raw2mA(1000)=%d mA2Raw(1000)=%d"),
|
// DIAG(F("senseFactorInternal=%d raw2mA(1000)=%d mA2Raw(1000)=%d"),
|
||||||
// senseFactorInternal, raw2mA(1000),mA2raw(1000));
|
// senseFactorInternal, raw2mA(1000),mA2raw(1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
// give general warning if pin values out of range were encountered
|
|
||||||
if (pinWarning)
|
|
||||||
DIAG(F("** WARNING ** Pin values > 255"));
|
|
||||||
|
|
||||||
// prepare values for current detection
|
// prepare values for current detection
|
||||||
sampleDelay = 0;
|
sampleDelay = 0;
|
||||||
lastSampleTaken = millis();
|
lastSampleTaken = millis();
|
||||||
|
@ -4,8 +4,10 @@
|
|||||||
#include "StringFormatter.h"
|
#include "StringFormatter.h"
|
||||||
|
|
||||||
|
|
||||||
#define VERSION "4.2.54pre4"
|
#define VERSION "4.2.54pre5"
|
||||||
// 4.2.54 - Fix: Pin handling supports pins up to 254
|
// 4.2.54 - Fix: Better warnings for pin number errors
|
||||||
|
// - Fix: Default roster list possible in Withrottle and <jR>
|
||||||
|
// - Fix: Pin handling supports pins up to 254
|
||||||
// 4.2.53 - Fix: Fault pin handling made more straight forward
|
// 4.2.53 - Fix: Fault pin handling made more straight forward
|
||||||
// 4.2.52 - Experimental support for sabertooth motor controller on ESP32
|
// 4.2.52 - Experimental support for sabertooth motor controller on ESP32
|
||||||
// 4.2.51 - Add DISABLE_PROG to disable programming to save RAM/Flash
|
// 4.2.51 - Add DISABLE_PROG to disable programming to save RAM/Flash
|
||||||
|
Loading…
Reference in New Issue
Block a user