v0.5.3 #29
@ -37,7 +37,7 @@ void pinMode(uint32_t PinNumber, uint32_t PinMode)
|
||||
return;
|
||||
}
|
||||
|
||||
if (digitalPinPwmIsOn(PinNumber))
|
||||
if (digitalPinPwmIsOn(PinNumber) > 0 )
|
||||
// if the pin use PWM, disable PWM
|
||||
analogWriteStop(PinNumber);
|
||||
|
||||
@ -102,15 +102,22 @@ __attribute__((noinline, section(".ram_text"))) void digitalWrite(uint32_t PinNu
|
||||
ErrorMsgHandler("digitalWrite(): pin number exceeds the total number of pins");
|
||||
return;
|
||||
}
|
||||
|
||||
if (digitalPinPwmIsOn(PinNumber))
|
||||
|
||||
GPIO_TypeDef* port = digitalPinToPort(PinNumber);
|
||||
HAL_PinsTypeDef mask = digitalPinToBitMask(PinNumber);
|
||||
|
||||
if (digitalPinPwmIsOn(PinNumber) > 0)
|
||||
{
|
||||
// if the pin use PWM, disable PWM
|
||||
analogWriteStop(PinNumber);
|
||||
|
||||
// and configure pin as output
|
||||
HAL_GPIO_PinConfig(port, mask, HAL_GPIO_MODE_GPIO_OUTPUT, HAL_GPIO_PULL_NONE, HAL_GPIO_DS_2MA);
|
||||
}
|
||||
|
||||
if (Val == HIGH)
|
||||
GPIO_SET_PIN(digitalPinToPort(PinNumber), digitalPinToBitMask(PinNumber));
|
||||
GPIO_SET_PIN(port, mask);
|
||||
else
|
||||
GPIO_CLEAR_PIN(digitalPinToPort(PinNumber), digitalPinToBitMask(PinNumber));
|
||||
GPIO_CLEAR_PIN(port, mask);
|
||||
}
|
||||
|
||||
// read pin
|
||||
@ -122,9 +129,9 @@ __attribute__((noinline, section(".ram_text"))) int digitalRead(uint32_t PinNumb
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (digitalPinPwmIsOn(PinNumber))
|
||||
if (digitalPinPwmIsOn(PinNumber) > 0)
|
||||
// if the pin use PWM, disable PWM
|
||||
analogWriteStop(PinNumber);
|
||||
analogWriteStop(PinNumber); // pin is configured as input here
|
||||
|
||||
return GPIO_READ_PIN(digitalPinToPort(PinNumber), digitalPinToBitMask(PinNumber));
|
||||
}
|
||||
@ -138,11 +145,17 @@ __attribute__((noinline, section(".ram_text"))) void digitalToggle(uint32_t PinN
|
||||
return;
|
||||
}
|
||||
|
||||
if (digitalPinPwmIsOn(PinNumber))
|
||||
GPIO_TypeDef* port = digitalPinToPort(PinNumber);
|
||||
HAL_PinsTypeDef mask = digitalPinToBitMask(PinNumber);
|
||||
|
||||
if (digitalPinPwmIsOn(PinNumber) > 0)
|
||||
{
|
||||
// if the pin use PWM, disable PWM
|
||||
analogWriteStop(PinNumber);
|
||||
|
||||
GPIO_TOGGLE_PIN(digitalPinToPort(PinNumber), digitalPinToBitMask(PinNumber));
|
||||
// and configure pin as output
|
||||
HAL_GPIO_PinConfig(port, mask, HAL_GPIO_MODE_GPIO_OUTPUT, HAL_GPIO_PULL_NONE, HAL_GPIO_DS_2MA);
|
||||
}
|
||||
GPIO_TOGGLE_PIN(port, mask);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
Loading…
Reference in New Issue
Block a user