2015-01-31 7 views
0

Я новичок в бесплатнойRTOS. В настоящее время я работаю над проектом, в котором используется zbbot Mx7ck (PIC32), на котором выполняется freeRTOS. Мне нужно читать кнопки, используя некоторые события (например, используя ввод кнопки в качестве входного события)? Но мне не разрешено использовать метод опроса или ISR, доступный в freeRTOS.Как читать кнопку в мозжечке Mx7ck без использования опроса в freeRTOS?

Профессор предложил использовать обработчик событий. Я ничего не знаю о управлении событиями в freeRTOS. Похоже, что в freeRTOS нет обработчика событий и управления без использования процедур обслуживания прерываний.

Пожалуйста, помогите. Я застрял в этом довольно долгое время.

+1

Возможно, вы можете связать кнопку с прерыванием и использовать обработчик прерываний, чтобы сигнализировать о событии. – kkrambo

ответ

2
  1. Настроить кнопку для генерации прерывания.

  2. Написать обработчик прерывания, как описано на странице документации для порта FreeRTOS PIC32 (смотрите раздел «прерывания обслуживания подпрограммы» на следующей странице: http://www.freertos.org/port_PIC32_MIPS_MK4.html)

  3. Have подпрограмму обслуживания прерывания делать все, что вы хотите произойдет, когда кнопка нажата.

Если вы хотите, чтобы прерывание, чтобы разблокировать задачу, то вы можете использовать уведомление задачи, как показано на этой странице: http://www.freertos.org/RTOS-task-notifications.html точнее http://www.freertos.org/RTOS_Task_Notification_As_Binary_Semaphore.html

Если вы не используете версию FreeRTOS, который поддерживает задачу но затем вы можете использовать двоичный семафор, который также задокументирован на веб-сайте FreeRTOS.org.

+0

Спасибо за ваше предложение. Я тоже думал о обработчике прерываний, как процедура ISR. Но, спросив моего профессора, попросил меня использовать обработчик событий. Я не мог найти решение, связанное с управлением событиями в freeRTOS. Возможно, я ошибаюсь, и профессор прав. Он сообщил, что прерывание предназначено для разработки вне RTOS. – Main

+1

@main: Это не имеет смысла избегать ISR и опроса, вам нужен ISR или опрос. Другого решения нет. –