上次实现了串口发送,这次完成联调,开动起来~~
定义串口协议:
第一个字节为识别符,第二个是数据,具体在这里是触控位置,滑条应该是1~30,滑轮应该是1~150.
tx_data[tx_r]=0xf1;//按键
tx_r++;
tx_data[tx_r]=0x04;
tx_r++;
0xf1表示按键,0x04表示按键按下。
tx_data[tx_r]=0xf2;//滑轮
tx_r++;
tx_data[tx_r]=CircleValue&0x000000ff;
tx_r++;
0xf2表示滑轮,后面是位置。
tx_data[tx_r]=0xf3;//滑条
tx_r++;
tx_data[tx_r]=BarValue&0x000000ff;
tx_r++;
0xf3表示滑条,后面是位置。
主程序中倒着发显然是不方便的,改成:
i=0;
while(i!=tx_r)//有数据需要发送
{US1CON3 = tx_data[i];//send one
while(!Uart1SendFlag);
Uart1SendFlag = 0;
i++;
}
tx_r=0;
这样,新定义这边就调试好了。
DCDC板这边,串口数据在中断中接收,收到偶数个数据(前面协议),进入处理流程。
其中,按键对应着电源板输出开关(按一下on/off),右上角指示灯同步指示。
关于滑轮和滑条就没这么简单了,因为传送的是位置。要确定是增大还是减少,需要历史数据(历史位置),所以软件上要做相应的处理和转换。
同时要注意的是位置切换的处理,滑条左右两边,滑轮是最上边,位置数据会在最大和最小之间突变。
效果如下:
操作还是需要视频展示~~
这样:
按键控制输出开、关,可以看右上角输出指示灯。
滑轮顺时针表示增大。逆时针减小。
滑条则是向右增大,向左减小。
快速减小,操作还是比较顺滑的~
调到需要的数值时(比如5.0V)就慢点操作,精确定位,精确设置。
操作上完全取代了原板设计的三个按键!
以上就是这次评测的主要内容了,实现了轻松使用触控功能的目标~
没有买调试器,也不搞据说很容易(费神)的触控调参,方便应用才是设计目的。
感觉新定义(赛元)的触控功能确实是做的比较好的,丝滑,稳定,抗干扰。
值得推荐!
|