TSC触摸屏

默认情况下,输入通道已被接到触摸屏上


nXPON


Plus X-axis on-off control signal


x轴正极开关控制信号


XMON


Minus X-axis on-off control signal


x轴负极开关控制信号


nYPON


Plus Y-axis on-off control signal


y轴正极开关控制信号


YMON


Minus Y-axis on-off control signal


y轴负极开关控制信号

/*触摸屏初始化*/

void Test_Touchpanel(void)
{
   
    rADCDLY=50000;  //ADC启动延时 (1/3.6864M)*50000=13.56ms
    
    /*设置AD转频率*/
    preScaler = ADC_FREQ;
    preScaler = 50000000/ADC_FREQ - 1; //PCLK=50M
    rADCCON = (1<<14)|(preScaler<<6); //使能分频,  分频值PRSCVL=19
                                                          //转换频率=50MHz/(19+1)=2.5HMz
                                                          //转换时间=1/(2.5MHz/5)=2×10^(-6)秒 
                                                          //一秒钟转换5×10^5次
    /*设置触摸屏为等待中断模式,等待触摸笔被按下*/
    rADCTSC=0xd3;  //Wfait,XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_En
                              //11010011  来自2440手册
    
    /*clear irq*/
    rSRCPND = 0x80000000;     //清除挂起状态
    rINTPND = 0x80000000;
    ClearSubPending(BIT_SUB_TC);

pISR_ADC = (U32)AdcTsAuto;   //中断服务函数

/*enable INT_TC irq*/ 
    rINTMSK = 0x7fffffff;            //打开屏蔽
    EnableSubIrq(BIT_SUB_TC);
}

static void __irq AdcTsAuto(void)  //中断服务函数
{
    U32 saveAdcdly;
    /****************stylus down************************/
    /*检测子中断源,判断是否是INT_TC中断,且触摸笔按下*/
    if(rSUBSRCPND & (BIT_SUB_TC))
    {
if( !(rADCDAT0&0x8000))  //是否落下状态
   Uart_Printf("\nStylus down\n");
else 
            Uart_Printf("\nStylus up\n"); 
    }

saveAdcdly=rADCDLY;
    rADCDLY=40000;    //ADC启动延迟    (1/50M)*40000=0.8ms

rADCCON|=0x1;                   //开始ADC
    while(rADCCON & 0x1);      //转换是否开始  
  while(!(rADCCON & 0x8000));  //转换是否结束
while(!(rSRCPND & 0x80000000));  //检测是否产生INT_ADC中断

/*获取X,Y坐标*/
    xdata=(rADCDAT0&0x3ff);   //[9:0]存储X值
    ydata=(rADCDAT1&0x3ff);   //[9:0]存储Y值
 Uart_Printf("count=%03d  XP=%04d, YP=%04d\n", count++, xdata, ydata);    
     
     /*3个PND         2个MSK*/ 
    ClearSubPending(BIT_SUB_TC);
    rSRCPND = 0x80000000;
    rINTPND = 0x80000000;  
    EnableSubIrq(BIT_SUB_TC);
    rINTMSK = 0x7fffffff;
    /****************stylus down************************/

}

时间: 2024-10-07 23:53:18

TSC触摸屏的相关文章

Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)

1 背景 还记得前一篇<Android触摸屏事件派发机制详解与源码分析一(View篇)>中关于透过源码继续进阶实例验证模块中存在的点击Button却触发了LinearLayout的事件疑惑吗?当时说了,在那一篇咱们只讨论View的触摸事件派发机制,这个疑惑留在了这一篇解释,也就是ViewGroup的事件派发机制. PS:阅读本篇前建议先查看前一篇<Android触摸屏事件派发机制详解与源码分析一(View篇)>,这一篇承接上一篇. 关于View与ViewGroup的区别在前一篇的A

Linux嵌入式驱动学习之路(十九)触摸屏驱动

触摸屏使用流程: 1. 按下产生中断. 2.在中断处理程序中启动AD转换XY坐标. 3.AD转换结束并产生AD中断. 4. 在AD的中断处理函数中上报信息,启动定时器. 5. 定时器时间到后进入中断,处理长按滑动.跳转到第二步 6. 松开. sd

自已开发完美的触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器

手机端网页版app在使用下拉列表时,传统的下拉列表使用起来体验非常不好,一般做的稍好一点的交互功能界面都不会直接使用下拉列表,所以app的原生下拉列表都是弹窗列表选择,网页型app从使用体验上来当然也应该做成那样,前段时间在开发网页版app时就遇到这种需求,不仅是日期选择器,数据列表.变量列表选择等等下拉列表型需求都需要,网上找来找去只找到一款比较好的mobiscroll,不过下载比较麻烦,感觉比较奇怪的是jquery.mobile.jeasyui.mobile都没有提供这种控件,不知道为什么?

使用步科触摸屏打印

这次打印走了一点弯路. 首先看一下硬件选型: 触摸屏:步科MT4414T 7寸屏幕,反应快,支持C语言宏. 它只有1个COM口,是COM0和COM2共用. PLC:永宏FBS-20MAT 串口是那种圆口,不如串口插拔方便. 打印机:美域POS-80K 淘宝卖家把串口写成并口,结果自己也想当然的买了个并口. 其实,要买的是串口打印机. 这里,也受步科触摸屏影响了,步科屏的COM9针可以定义成232,485.就以为80K也是可以自由针脚定义的,实际却不是. 80K的拨码可以选择串口打印方式,但是接口

NUC970平台触摸屏驱动移植

原理概述 1.首先要区分lcd和触摸屏,lcd是一个屏幕,触摸屏是贴在lcd上的两层膜. 2.四线电阻触摸屏的原理:触摸屏就是上下两层膜,比如上层代表x轴(XM:负端,XP:正端),下层代表y轴(YM:负端,YP:正端).当读取x轴坐标时,XP接3.3v,XM接地,从YM读取按下点的电压值作为模拟输入信号,再经过AD转换后就得到了x轴坐标.同理,当读取y轴坐标时,YP接3.3v,YM接地,从XM读取按下点的电压值作为模拟输入,再经过AD转换后就得到了y轴坐标. 触摸屏驱动程序采用中断方式对触摸笔

Android触摸屏事件派发机制详解与源码分析

请看下面三篇博客,思路还是蛮清晰的,不过还是没写自定义控件系列哥们的思路清晰: Android触摸屏事件派发机制详解与源码分析一(View篇) http://blog.csdn.net/yanbober/article/details/45887547 Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇) http://blog.csdn.net/yanbober/article/details/45912661 Android触摸屏事件派发机制详解与源码分析三(Activi

ANDROID5.0触摸屏校准

1.校准原理: 1)首先生成校准用的参数,可以适用tslib生成校准参数,也可以使用校准app生成:使用校准app进行校准对使用者要求比较低,使用者可以不用学习复杂的命令:本文使用app方式 2)生成校准参数后,以后驱动每次接收到触摸事件就会使用校准参数进行校准 2.校准app 校准功能完全实现在在src目录里的MainActivity.java里,内容如下: package com.wss.calibrate2; import android.app.Activity;import andro

2、UCGUI触摸屏驱动移植

1.例程代码: 1 /************************************************************************************************************************************* 2 * 3 * 文件名称:main.c 4 * 文件功能:主函数文件 5 * 6 ****************************************************************

乂文&#174;便携触摸屏-介绍

® 乂文®便携触摸屏 — 互动随手 沟通随心 产品简介 乂文®便携触摸屏(YeeVing® Interactive Screeen),可方便安装于用户已有的幕布.墙面.展厅.玻璃等用于投影显示区域一侧(上.下.左.右均可),使得用户可以在上述投影显示区域触控及手势操作,极大提升现场交流沟通成效.乂文®便携触摸屏的目标是,任意的显示平面均可触摸操作. 乂文®便携触摸屏,可固定在墙面.天花板.幕布支架,也可放置于地板上:与计算机通信采用无线网络方式,DC12V供电,安装配置十分简捷方便. 乂文®便携