遥控器按键弹起消息
来源:互联网 发布:macbookpro推荐软件 编辑:程序博客网 时间:2024/05/16 18:53
需求:
需要对上下方向键添加按键弹起的消息。
在遥控器上下方向按键弹起时,发送一个按键弹起的消息。实际开发的应用是要求换台时,一直按着遥控器键,只换信息条跳动,不切台,放开按键即按键弹起后,切换到当前停止的台上;
思路:在遥控器的中断响应里面进行全局变量的赋值为1,然后在自己写的keyup_respond函数里面进行轮询检测这个全局变量的值是否发生变化,最后创建线程调用自己写的的接口函数keyup_rspond。
void RemoteISR (STPIO_Handle_t Handle, STPIO_BitMask_t ActiveBits)
{
对于上向方向的重复按键和单次按键分别m_i置1,并且设置标志变量,如果重复按下时单次不置1.
}
/*****************************************************************************
Function Name : 按键弹起消息
*****************************************************************************/
static int state_change_sign = 0;
static int state_count = 0;
void keyup_rspond(void* pvParam)
{
while(1)
{
if(m_i == 1)//
{
state_change_sign = 1;
m_i = 0;
state_count = 0;
}
else if((m_i==0) && (state_change_sign == 1))
{
state_count++;
if(state_count == 8)
{
state_change_sign = 0;
state_count = 0;
m_i = 0;
printf("******send RKEY_UP_STATUS message\n\n");
STTBX_Print(("******send RKEY_UP_STATUS message\n\n"));
Panel_DeliverAppMsg(RKEY_UP_STATUS);
}
}
task_delay (6250*20); // 20ms
}
}
/*****************************************************************************
Function Name : 在遥控器初始化里面创建线程调用按键弹起消息函数
*****************************************************************************/
BOOL_YS DRV_PanleInit ( void )
{
task_t *KeyTask;
KeyTask = task_create ( keyup_rspond,
0L,
4096, /* stack */
9,/*9,*/ /* priority */
"bordTask",
0 );
}
出现的问题:
1、创建任务的时候不能保证上层的任务和我们创建的任务都成功,可能是内存引起的问题,通过在sections.c里面将开头的注释去掉,达到了创建线程的效果。
2、在按键弹起的时候只有上向方向键响应,
开始的时候通过在中断锁之前加上按键判断标志失败,总是在按完上下键的紧接着的那个键还是有按键抬起响应,造成这个原因可能是上次响应的键值传到了这个的键值里面使得改变了我们定义的全局变量,
于是通过在重复按键和单次按键的选择里面进行全局变量的赋值,同时还要防止重复键在开始按下和抬起响应两次,我们设置了标志位,如果响应重复按键就不响应一般按键。最终问题得到了解决。
- 遥控器按键弹起消息
- 遥控器鼠标按键流程
- 画中画功能的遥控器按键设计
- 遥控器按键不灵的修复方法
- android4.0增加遥控器按键步骤
- android4.0增加遥控器按键步骤<2>
- android4.0增加遥控器按键<3>
- android4.0添加遥控器按键整理篇
- IR遥控器增加新按键功能
- Android平台遥控器按键映射流程
- 用遥控器控制LCD显示按键数值
- 关于adb推送遥控器按键键值
- hisi平台遥控器按键适配
- 按键消息
- JQuery学习笔记之按键按下和弹起事件
- android 4.2里面增加遥控器按键的方法
- 捕获Esc按键消息
- 捕获按键消息
- python map
- Vold工作流程分析学习
- HDU_3062_Party(2-SAT)
- hdu 01背包 2639Bone Collector II 01背包的第K优解
- Sharepoint习题——sandboxed之Webpart
- 遥控器按键弹起消息
- 建立android的AIDL服务的过程
- oracle 10g 导入到11g中会出现12899错误从而导致数据无法插入,进而数据丢失
- 平时不懂的tips
- Vbox 未指定XXX网络名称 找不到网卡有关问题
- Android 调用已安装市场,进行软件评分的功能实现
- isRunning函数的使用
- android 启动另一个app中的activity和service
- priority_queue的用法