如何在不使用 freeRTOS 轮询的情况下读取 cerebot Mx7ck 中的按钮?

How to read a button in cerebot Mx7ck without using polling in freeRTOS?

我是freeRTOS的新手。我目前正在从事一个使用 cerebot Mx7ck(PIC32) 运行 freeRTOS 的项目。我需要使用某些事件读取按钮(即使用按钮输入作为输入事件)?但是我不允许使用 freeRTOS 中可用的轮询技术或 ISR。

教授建议使用事件处理器。我对 freeRTOS 中的事件管理一无所知。 freeRTOS好像没有事件处理器和管理,没有使用中断服务例程。

请帮忙。我在这个问题上卡了好久。

  1. 配置按钮产生中断。

  2. 按照 FreeRTOS PIC32 端口的文档页面中的描述编写中断处理程序(请参阅下一页的 "interrupt service routines" 部分:http://www.freertos.org/port_PIC32_MIPS_MK4.html

  3. 让中断服务例程在按下按钮时执行任何您想发生的事情。

如果您希望中断取消阻止任务,那么您可以使用此页面上演示的任务通知:http://www.freertos.org/RTOS-task-notifications.html or more precisely http://www.freertos.org/RTOS_Task_Notification_As_Binary_Semaphore.html

如果您使用的不是支持任务通知的 FreeRTOS 版本,那么您可以改用二进制信号量 - FreeRTOS.org 网站上也有记录。