mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-23 08:06:13 +01:00
ESP32 rewrite PWM LEDC inrush duty fix
This commit is contained in:
parent
fdc956576b
commit
6d7d2325da
|
@ -68,7 +68,7 @@ class DCCTimer {
|
||||||
static void DCCEXanalogWrite(uint8_t pin, int value);
|
static void DCCEXanalogWrite(uint8_t pin, int value);
|
||||||
static void DCCEXledcDetachPin(uint8_t pin);
|
static void DCCEXledcDetachPin(uint8_t pin);
|
||||||
static void DCCEXanalogCopyChannel(uint8_t frompin, uint8_t topin);
|
static void DCCEXanalogCopyChannel(uint8_t frompin, uint8_t topin);
|
||||||
static void DCCEXInrushControlOn(uint8_t pin);
|
static void DCCEXInrushControlOn(uint8_t pin, int duty);
|
||||||
// Update low ram level. Allow for extra bytes to be specified
|
// Update low ram level. Allow for extra bytes to be specified
|
||||||
// by estimation or inspection, that may be used by other
|
// by estimation or inspection, that may be used by other
|
||||||
// called subroutines. Must be called with interrupts disabled.
|
// called subroutines. Must be called with interrupts disabled.
|
||||||
|
|
|
@ -245,10 +245,10 @@ void DCCTimer::DCCEXanalogWrite(uint8_t pin, int value) {
|
||||||
ledcWrite(pin_to_channel[pin], value);
|
ledcWrite(pin_to_channel[pin], value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void DCCTimer::DCCEXInrushControlOn(uint8_t pin) {
|
void DCCTimer::DCCEXInrushControlOn(uint8_t pin, int duty) {
|
||||||
ledcSetup(0, 62500, 8);
|
ledcSetup(0, 62500, 8);
|
||||||
ledcAttachPin(pin, 0);
|
ledcAttachPin(pin, 0);
|
||||||
ledcWrite(0, 207);
|
ledcWrite(0, duty);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ADCee::init(uint8_t pin) {
|
int ADCee::init(uint8_t pin) {
|
||||||
|
|
|
@ -411,7 +411,7 @@ void MotorDriver::throttleInrush(bool on) {
|
||||||
duty = 255-duty;
|
duty = 255-duty;
|
||||||
#if defined(ARDUINO_ARCH_ESP32)
|
#if defined(ARDUINO_ARCH_ESP32)
|
||||||
if(on) {
|
if(on) {
|
||||||
DCCTimer::DCCEXInrushControlOn(brakePin);
|
DCCTimer::DCCEXInrushControlOn(brakePin, duty);
|
||||||
} else {
|
} else {
|
||||||
ledcDetachPin(brakePin); // not DCCTimer::DCCEXledcDetachPin() as we have not
|
ledcDetachPin(brakePin); // not DCCTimer::DCCEXledcDetachPin() as we have not
|
||||||
// registered the pin in the pin to channel array
|
// registered the pin in the pin to channel array
|
||||||
|
|
Loading…
Reference in New Issue
Block a user