微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > emwin裸机触摸检测描方式

emwin裸机触摸检测描方式

时间:10-02 整理:3721RD 点击:
转一个经验
将触摸检测放在硬件定时器中断里面了,实际项目中不推荐这种方式,因为触摸检测获取触摸数据时,时间都稍微有些长,如果获取电容屏的多点触摸数据,时间就更长了,比较影响系统的实时性,所以推荐使用emWin自带的定时器功能来做触摸检测。
       分两步即可完成(烈推荐的裸机触摸检测方式,不在中断里调用(裸机)):

第1步:创建定时器,这里创建了两个定时器,周期分别是1ms和10ms。
/* 创建定时器 */
hTimer = GUI_TIMER_Create(_cbTimer, /* 回调函数 */
??????????????????????????1,?????? /* 绝对时间,设置系统上电后1ms作为溢出时间 */
??????????????????????????0x01,????/* 可以认为此参数是区分不同定时器的ID,方便多个定时使用同一个回调函数 */
??????????????????????????0);??????/* 保留,暂时未用到 */
????????????????????????
/* 设置定时器周期为1ms */
GUI_TIMER_SetPeriod(hTimer, 1);


/* 创建定时器 */
hTimer = GUI_TIMER_Create(_cbTimer, /* 回调函数 */
??????????????????????????10,??????/* 绝对时间,设置系统上电后10ms作为溢出时间 */
??????????????????????????0x02,????/* 可以认为此参数是区分不同定时器的ID,方便多个定时使用同一个回调函数 */
??????????????????????????0);??????/* 保留,暂时未用到 */

第2步:定时器的回调函数电阻屏的检测周期是1ms,电容屏的触摸芯片GT811和FT5X06检测周期是10ms。
/*
*********************************************************************************************************
*????函 数 名: _cbTimer
*????功能说明: 定时器回调函数????????
*????形????参: pTM 消息指针
*????返 回 值: 无
*********************************************************************************************************
*/
void _cbTimer(GUI_TIMER_MESSAGE * pTM)
{
???? switch (pTM->Context)
???? {
???????? case 0x01:
??????????????/* 电阻触摸屏 */
??????????????if(g_tTP.Enable == 1)
??????????????{
?????????????????? TOUCH_Scan();
??????????????}
????????????
??????????????/* 此函数一定要调用,设置重新启动,要不仅执行一次 */
??????????????GUI_TIMER_Restart(pTM->hTimer);
??????????????break;
????????
???????? case 0x02:
????
??????????????/* 电容触摸屏GT811 */
??????????????if(g_GT811.Enable == 1)
??????????????{
?????????????????? GT811_OnePiontScan();
??????????????}

??????????????/* 电阻触摸屏FT5X06 */
??????????????if(g_tFT5X06.Enable == 1)
??????????????{
?????????????????? FT5X06_OnePiontScan();
??????????????}
????????????
??????????????/* 此函数一定要调用,设置重新启动,要不仅执行一次 */
??????????????GUI_TIMER_Restart(pTM->hTimer);
??????????????break;??????
????????
???????? default:
??????????????break;
???? }
}

分享完成,,,,,,

好东西啊,,,,

进来支持一下,,,,

谢谢支持的啊哦,

好资料是值得支持的

看看了,,,,,,

有点不错的,,,

是的吧,非常的不错,

谢谢支持的啊哦了,

建议大家一起分享,

建议大家一起分享,

多分享,多受益的,

赶快行动起来的啊,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top