ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

FreeRTOS实战教程-第四章

FreeRTOS实战教程-第四章 第四章 任务间通信之队列 —— 改造 03_KEY4.1 实验回顾:裸机版按键处理03_KEY在主循环里轮询扫描按键,根据键值控制 LED 与蜂鸣器:while(1){key=key_scan(0);/* 扫描按键(0=不支持连按) */if(key){switch(key){caseWKUP_PRES:/* WK_UP 按下 */BEEP_TOGGLE();/* 蜂鸣器状态取反 */break;caseKEY1_PRES:/* KEY1 按下 */LED1_TOGGLE();/* LED1 状态取反 */break;caseKEY0_PRES:/* KEY0 按下 */LED0_TOGGLE();LED1_TOGGLE();break;}}else{delay_ms(10);/* 无按键时也占着循环 */}}key_scan内部用delay_ms(10)做消抖、用key_up标志避免重复触发——整套逻辑被“按键扫描”和“主循环节奏”绑死在一起。4.2 改造方案设计:生产者—消费者模型把“扫描”和“处理”拆成两个任务,中间放一个队列(Queue)传递键值:key_task(扫描, 10ms 节拍) proc_task(处理, 阻塞等待) key_scan_rtos()
返回列表