近来短短徐徐的弄emWIN,用的是ST的429,做了几个界面,触摸屏的控制基本没有问题了。现在准备通过外部按键来实现动作。一时间懵懂了。所以发个帖子看看有大伙做过类似的东西。
前提是我现在没有用系统,只是在裸跑emWIN,想实现的情况举个例子:如外部接5个按键,分别K1-K5,如果按K1-4相当于触摸屏的上下左右,按K5就相当于点击控件,然后进入控件对应的界面。
我第一想法就是在界面下,在WHILE()的循环中不断检测端口,但这样又要去修改触摸屏的位置会比较麻烦,倒不如直接修改触摸屏的检测函数。
第二想法就是先看看触摸屏的函数,我现在使用的电阻触屏,如果使用外部按键和触屏同时改变位置,触屏的外置检测应该没问题,但是外部按键修改位置是通过计数触发的时间转换成位置差,还是其他方法。
第二个情况就是我板子上有8个IO输入,而我的界面上有8个指示灯,这个8个指示灯我的想法是用图片来表现出来,当IO触发和没有触发时,分别切换成两个不同的图片来标识输入IO的状态,我首先想到的就是在WHILE()的死循环内不断检测端口,然后根据端口状态来修改图片,但我觉得这个做法好像太平凡,我在想是否有一种做法:外部输入IO就像EMWIN的一个控件,IO的改变都有自己的一个回调函数呢?
至于改变IO输出,举例:如我板子上有8个专门的输出IO,EMWIN的界面上有对应有8个按键,我的想法是按键没有按下的时候IO输出低,当按键按下时,IO输出高。这个输出相对好办,只要在按键的回调函数上对对应的按键事件中修改对应IO的状态就可以了。
|