Как прочитать кнопку в cerebot Mx7ck без использования опроса в freeRTOS?
Я новичок в freeRTOS. В настоящее время я работаю над проектом, использующим Cerebot Mx7ck(PIC32) под управлением FreeRTOS. Мне нужно прочитать кнопки, используя некоторые события (например, используя кнопки ввода в качестве события ввода)? Но мне не разрешено использовать технику опроса или ISR, доступные в freeRTOS.
Профессор предложил использовать обработчик событий. Я ничего не знаю об управлении событиями в freeRTOS. Похоже, что в freeRTOS нет обработчика событий и управления без использования процедур обработки прерываний.
Пожалуйста помоги. Я застрял в этом довольно долго.
1 ответ
Настройте кнопку для генерации прерывания.
Напишите обработчик прерываний, как описано на странице документации для порта PIC32 FreeRTOS (см. Раздел "Процедуры обработки прерываний" на следующей странице: http://www.freertos.org/port_PIC32_MIPS_MK4.html)
Сделайте так, чтобы процедура обработки прерываний делала все, что вы хотите, когда кнопка нажата.
Если вы хотите, чтобы прерывание разблокировало задачу, вы можете использовать уведомление о задаче, как показано на этой странице: http://www.freertos.org/RTOS-task-notifications.html или, более точно, http://www.freertos.org/RTOS_Task_Notification_As_Binary_Semaphore.html
Если вы не используете версию FreeRTOS, которая поддерживает уведомления о задачах, вы можете вместо этого использовать двоичный семафор - это также задокументировано на веб-сайте FreeRTOS.org.