硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5124|回复: 3
收起左侧

[emWin] RA8875触摸和EMwin526的自带驱动,如何避免冲突

[复制链接]

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
发表于 2015-4-6 18:45:07 | 显示全部楼层 |阅读模式
使用了EMWIN5.26的自带驱动,用键盘的时候跑的很好。

现在试了一下触摸,界面会出现一些乱码的线条,应该就是FSMC总线冲突造成的。 但是自带驱动里面都被封装在emwin的lib了,哪位研究过,怎么加s_ucRA8875BusyNow = 1;来避免冲突?
回复

使用道具 举报

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
 楼主| 发表于 2015-4-6 18:53:52 | 显示全部楼层
找到一个变通的办法,在主程序中

while(1)
{
    GUI_Delay(10);
    GUI_TOUCH_Exec();
}
点击屏幕的时候,游标可以跳转到位置,只是滑动触摸的时候不流畅,一跳一跳的。
如果有更好的办法,期望大家推荐!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115692
QQ
发表于 2015-4-6 19:45:51 | 显示全部楼层
别使用你在二楼贴的方法,很不方便的,后面你就会发现了。
自带驱动也可以改的,改你写的RA8875驱动函数,每个函数都这么写:
1.jpg
==============================================
==============================================
另外触摸的函数这么写

2.jpg
回复

使用道具 举报

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
 楼主| 发表于 2015-4-6 21:06:15 | 显示全部楼层

回 eric2013 的帖子

eric2013:别使用你在二楼贴的方法,很不方便的,后面你就会发现了。
自带驱动也可以改的,改你写的RA8875驱动函数,每个函数都这么写:

==============================================
==============================================
....... (2015-04-06 19:45)
EMwin5.22的时候用的是你的那个template的驱动,emwin5.26后就换成内部驱动了。
自带驱动说的是EMwin5.26自己带的驱动,只能定义读写RA8875的寄存器函数,貌似没法加那个标志位。

另外,用这个标志位的话,触摸的touch_exec可能会跳过几个周期(某几个10ms不识别),会不会影响响应速度? 为什么大家都不用中断模式呢?

还有,我想为什么会造成冲突呢?可能是touch函数在tick中断中执行,而RA8875一些命令是连续的写REG和RAM,中断函数打断了FSMC正常写TFT的时序,所以会花屏。不知道理解是否正确?
如果这个分析是对的,那么我们就不要在中断中插入touch_exec,可以设定一个wm_timer(或者系统定时器GUI_Timer),在常规循环中调用touch的识别就好了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-12 11:24 , Processed in 0.308553 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表