Alternate check is working / assert will be reagt to implement (Edwin ?)

interrupts
key 4 years ago
parent fe9556b033
commit 3aaf36a4c1

@ -121,14 +121,17 @@ void pinSetSpeed(pinNo_t pinNo, pinSpeed_t speed)
void pinSetAlternate(pinNo_t pinNo, uint16_t alternate) void pinSetAlternate(pinNo_t pinNo, uint16_t alternate)
{ {
if(PIN_NO < 8) if(altFunc_List[PIN_PORT][PIN_NO] & (1<<(7-alternate))) //chekc if alternate function is awailble
{ {
PIN_BASE->AFR[0] &= ~(0x0F << (PIN_NO * 4)); if(PIN_NO < 8)
PIN_BASE->AFR[0] |= ((alternate & 0x0F) << (PIN_NO * 4)); {
return; PIN_BASE->AFR[0] &= ~(0x0F << (PIN_NO * 4));
PIN_BASE->AFR[0] |= ((alternate & 0x0F) << (PIN_NO * 4));
return;
}
PIN_BASE->AFR[1] &= ~(0x0F << ((PIN_NO-8) * 4));
PIN_BASE->AFR[1] |= ((alternate & 0x0F) << ((PIN_NO-8) * 4));
} }
PIN_BASE->AFR[1] &= ~(0x0F << ((PIN_NO-8) * 4));
PIN_BASE->AFR[1] |= ((alternate & 0x0F) << ((PIN_NO-8) * 4));
} }
void pinConfig(pinNo_t pinNo, pinMode_t mode, pinStage_t stage, pinPullUpDown_t resistance, pinSpeed_t speed) void pinConfig(pinNo_t pinNo, pinMode_t mode, pinStage_t stage, pinPullUpDown_t resistance, pinSpeed_t speed)

Loading…
Cancel
Save