完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/********************************** (C) COPYRIGHT *******************************
* File Name : KEY.c * Author : WCH * Version : V1.0 * Date : 2014/05/12 * Description : *******************************************************************************/ /******************************************************************************/ /* 头文件包含 */ #include "CH57x_common.h" #include "HAL.h" /************************************************************************************************** * GLOBAL VARIABLES **************************************************************************************************/ uint8 Hal_KeyIntEnable; /* interrupt enable/disable flag */ // Registered keys task ID, initialized to NOT USED. static uint8 registeredKeysTaskID = TASK_NO_TASK; static uint8 halKeySavedKeys; /* 保留按键最后的状态,用于查询是否有键值变化 */ static uint8 KeyConfigFlag; /* 按键是否配置标志位 */ /************************************************************************************************** * FUNCTIONS - Local **************************************************************************************************/ static halKeyCBack_t pHalKeyProcessFunction; /* callback function */ /************************************************************************************************** * @fn HAL_KeyInit * * @brief Initilize Key Service * * @param none * * @return None **************************************************************************************************/ void HAL_KeyInit( void ) { /* Initialize previous key to 0 */ halKeySavedKeys = 0; /* Initialize callback function */ pHalKeyProcessFunction = NULL; /* Start with key is not configured */ KeyConfigFlag = FALSE; KEY1_DIR; KEY1_PU; KEY2_DIR; KEY2_PU; KEY3_DIR; KEY3_PU; KEY4_DIR; KEY4_PU; KEY5_DIR; KEY5_PU; KEY6_DIR; KEY6_PU; KEY7_DIR; KEY7_PU; KEY8_DIR; KEY8_PU; KEY9_DIR; KEY9_PU; KEY10_DIR; KEY10_PU; KEY11_DIR; KEY11_PU; KEY12_DIR; KEY12_PU; HalKeyConfig( HAL_KEY_INTERRUPT_ENABLE, HalKeyCallback ); } void HAL_KEY_RegisterForKeys( tmosTaskID id ) { registeredKeysTaskID = id; } /************************************************************************************************** * @fn HalKeyConfig * * @brief Configure the Key serivce * * @param interruptEnable - TRUE/FALSE, enable/disable interrupt * cback - pointer to the CallBack function * * @return None **************************************************************************************************/ void HalKeyConfig (uint8 interruptEnable, halKeyCBack_t cback) { /* Enable/Disable Interrupt or */ Hal_KeyIntEnable = interr 加载更多 |
|
相关推荐
1个回答
|
|
1、如果是通过GPIO中断方式,可以在main中自己写一个KEY_IO函数。
附件是带IO中断的单独例子。 CH573_IO_ZPF.zip 2、如果添加BLE功能,则需要注意,中断处理函数时间<1ms。否则会出现丢失数据。注意丢失数据,不一定会出现BLE断开。 3、建议在TMOS框架下,使用轮询IO口的方式,同时优化按键抖动等应用。如果非要中断,那么通过中断标志位,去外部处理IO数据。当然耗费的时间和轮询按键时间,反而增多,具体需要根据应用更多考量。 |
|
|
|
只有小组成员才能发言,加入小组>>
468 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2871 浏览 2 评论
2359 浏览 1 评论
813浏览 2评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
639浏览 1评论
497浏览 1评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
362浏览 1评论
638浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 02:43 , Processed in 1.228019 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号