Я закодировал программы, которые используют две кнопки и внешние прерывания для включения каждого светодиода. Я хотел использовать упреждающее планирование с использованием приоритета. но моя HAL-используемая программа запускает только мод Tail-Chaining Interrupt. Есть ли способ реализовать упреждающее планирование?
int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while (1) {
if(flag_Sw1 == 1) {
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_SET);
flag_Sw1=0;
HAL_Delay(200);
} else if (flag_Sw2 == 1) {
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_SET);
flag_Sw2=0;
HAL_Delay(200);
}
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_RESET);
}
}
.
.
.
// in the MX_GPIO_Init(void)
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 1, 0);
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
.
.
.
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_PIN) {
if(GPIO_PIN == GPIO_PIN_8) {
flag_Sw1 = 1;
flag_Sw2 = 0;
}
else if(GPIO_PIN == GPIO_PIN_13) {
flag_Sw1 = 0;
flag_Sw2 = 1;
}
}