- в модулях Wire, SPI, Serial приведена в соответствие нумерация используемых экземпляров и периферии микроконтроллера.
- в функции analogWrite() перед запуском ШИМ проверяется, не запущен ли уже указанный канал.
- добавлена возможность переопределения функции main() в скетчах.
- при старте программы задается граница кэшируемой области SPIFI в соответствии с размером текущего исполняемого кода.
- исправление выявленных ошибок.
Co-authored-by: KLASSENTS <klassen@elron.tech>
Co-committed-by: KLASSENTS <klassen@elron.tech>
This commit is contained in:
klassents authored and klassents committed 2025-05-30 12:24:08 +03:00
1 parent f1e091bf77
commit eb9b1aa0c9
37 files changed
+248 -156

No files matched your search

+11 -10
View File
@@ -167,26 +167,27 @@ uint32_t analogInputToChannelNumber(uint32_t PinNumber)
}
// ---------------------- PWM ---------------------- //
// use only if digitalPinHasPWM() == true
#define PWM_PIN_TO_PORT_NUMBER(pin) (((pin==10)||(pin==11)||(pin==12)||(pin==13)) ? 1:0)
// return true if digitalPin configured as pwm
__attribute__((noinline, section(".ram_text"))) bool digitalPinPwmIsOn(uint8_t digitalPin)
// return 1 if digitalPin configured as pwm and enabled,
// 0 if pwm on pin is disabled,
// -1 if pin doesn't support pwm
__attribute__((noinline, section(".ram_text"))) int8_t digitalPinPwmIsOn(uint8_t digitalPin)
{
if (digitalPinHasPWM(digitalPin))
{
uint8_t config = 0;
uint8_t pinShift = PIN_MASK_TO_PIN_NUMBER(digitalPinToBitMask(digitalPin));
if (PWM_PIN_TO_PORT_NUMBER(digitalPin) == 0)
config = PIN_GET_PAD_CONFIG(PORT_0_CFG, pinShift);
else
if ((digitalPin==10)||(digitalPin==11)||(digitalPin==12)||(digitalPin==13))
config = PIN_GET_PAD_CONFIG(PORT_1_CFG, pinShift);
else
config = PIN_GET_PAD_CONFIG(PORT_0_CFG, pinShift);
if (config == 2)
return true;
return 1; // pwm is on
else
return 0; // pwm is off
}
return false;
return -1; // pin doesn't support pwm
}
// function is used only if digitalPinHasPWM() is true