1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-12-23 21:01:25 +01:00

DC mode portability for ARM (SAMD21/STM32)

This commit is contained in:
pmantoine 2022-08-10 10:45:33 +08:00
parent a985356f0c
commit 915de96e80

View File

@ -137,10 +137,12 @@ class MotorDriver {
inline byte getSignalPin() { return signalPin; };
virtual void setDCSignal(byte speedByte);
inline void detachDCSignal() {
#ifndef ARDUINO_ARCH_ESP32
setDCSignal(128);
#else
#if defined(__arm__)
pinMode(brakePin, OUTPUT);
#elif defined(ARDUINO_ARCH_ESP32)
ledcDetachPin(brakePin);
#else
setDCSignal(128);
#endif
};
virtual int getCurrentRaw();
@ -148,7 +150,8 @@ class MotorDriver {
virtual unsigned int raw2mA( int raw);
virtual unsigned int mA2raw( unsigned int mA);
inline bool brakeCanPWM() {
#ifdef ARDUINO_ARCH_ESP32
#if defined(ARDUINO_ARCH_ESP32) || defined(__arm__)
// TODO: on ARM we can use digitalPinHasPWM, and may wish/need to
return true;
#else
#ifdef digitalPinToTimer
@ -156,7 +159,7 @@ class MotorDriver {
#else
return (brakePin<14 && brakePin >1);
#endif //digitalPinToTimer
#endif //ESP32
#endif //ESP32/ARM
}
inline int getRawCurrentTripValue() {
return rawCurrentTripValue;