本帖最后由 lcdi 于 2022-12-9 16:20 编辑
easycodecube非常好用,定义一些功能啥的,不用查手册~这点也是大势所趋了。
不过触控的调试是跟硬件密切相关的,手上只有触控评估板,demo code也是调好了的,所以~直接开始应用吧!
设想:利用官方评估板,当做一个触控输入板,集成进其他项目去。这里的目标项目就是上次用来测试的DCDC板,利用触控来实现UI,比较原板的按键是不是更好?!
连接两块板子最简易的应该是利用串口吧~所以给触控demo加上串口输出吧~
如果使用uart,引脚要另外连接,所以这里使用SSI1配置成串口模式,直接使用了板载的虚拟串口~
设置如下:
//add uart init
P1CON &= 0xF5; //TX/RX设置为输入带上拉
P1PH |= 0x0A;
OTCON |= 0xC0; //串行接口SSI1选择Uart1通信
US1CON0 = 0x50; //设置通信方式为模式一,允许接收
US1CON1 = 32*1000000/115200; //波特率低位控制
US1CON2 = (32*1000000/115200)>>8; //波特率高位控制
IE2 |= 0x01; //开启SSI1中断
SC_it.c是中断文件
里面定义:
bit Uart1SendFlag = 0; //发送中断标志位
bit Uart1ReceiveFlag = 0; //接收中断标志位
中断15里面:
if(US1CON0&0x02) //发送标志位判断
{
US1CON0 &= 0xFE;
Uart1SendFlag = 1;
}
if((US1CON0&0x01)) //接收标志位判断
{
US1CON0 &= 0xFD;
Uart1ReceiveFlag = 1;
}
主程序文件里面:
extern bit Uart1SendFlag; //发送中断标志位
extern bit Uart1ReceiveFlag; //接收中断标志位
uint8_t tx_data[10]=0,tx_r=0;
tx_data为发送数据缓冲区,tx_r是发送指针。
DataProcessing函数里面滑条位置添加:
BarValue = TKSlideModulePCBArray[1].OutValue;
tx_data[0]=BarValue&0x000000ff;
tx_data[3]=tx_data[0]/100+0x30;
tx_data[0]=tx_data[0]%100;
tx_data[2]=tx_data[0]/10+0x30;
tx_data[0]=tx_data[0]%10;
tx_data[1]=tx_data[0]+0x30;
tx_data[0]=0x0a;//\n
tx_r=4;
倒着填充数据的,因为主循环中:
while(tx_r!=0)//有数据需要发送
{US1CON3 = tx_data[tx_r-1];//send one
while(!Uart1SendFlag);
Uart1SendFlag = 0;
tx_r--;
}
也是倒着发送的~
这样就可以了,数据格式是为了配合VOFA+的Firewater格式。
这个是滑条位置的变化,滑动上方滑条的数据。
这个是滑轮的数据,可以看出有一些抖动的情况。
~~~
这样就准备好向DCDC板发送触控消息了。
下一步调整DCDC板的程序以配合~
|