S3C2440 测试程序(五) 触摸屏实验

发布者:Chunjie2022最新更新时间:2016-12-06 来源: eefocus关键字:S3C2440  触摸屏实验 手机看文章 扫描二维码
随时随地手机看文章

          电阻式触摸屏的检测原理是触摸后引起上下两个导电层的接触,改变了电压输出,进行A/D转换后成了该点的X,Y坐标。
          初始化AD和触摸口:
          void TouchSrceen_Test(void)

         {

                rADCDLY = 50000;  //(1/3.68MHz)*50000 = 13.56ms
  注: 在ADC转换之前用的是外部时钟X-tal clock:3.68MHz
                                之后才用到GLK: 50MHz

                rADCCON = (1<<14)|(prescaler<<6);

                注: bit[14]: 0--disable ADC   1--enable ADC     bit[13:6]: prescaler = 9    ADC fleq = 50MHz/(9+1) = 5MHz

                Uart_Printf("\nTouch Screen test\n");

                rADCTSC = 0xd3;//waiting for interrupt Mode
  注: bit[1:0]: 11--waiting for interrupt Mode
   bit[2]: 0--Normal ADC   1--Auto Sequential measurement of X-position,Y-position
   bit[3]: 0--XP pull-up enable  1--XP pull-up disable
   bit[4]: 0--XP output driver enable   1--XP output driver disable
   bit[5]: 0--XM output driver disable  1--XM output driver enable
   bit[6]: 0--YP output driver enable   1--YP output driver disable
   bit[7]: 0--YM output driver disable  1--YM output driver enable
   bit[8]: 0--stylus down interrupt signal   1--stylus up interrupt signal

                pISR_ADC = (int)ADC_TCTest;

                rINTMSK = ~(1<<31);  //clear ADC MASK bit

                rINTSUBMSK = ~(1<<9);          //clear TouchScreen MASK bit

       }

       void __irq ADC_TCTest(void)

       {

                U32 saveADCDLY;

                if(rADCDAT0 & 0x8000)      //bit[15]:0--stylus down  1--stylus up

                {

                      rADCTSC &= 0xff;  //clear bit[8]:0 stylus down 1--stylus up

                }

                rADCTSC = (1<<3)|(1<<2); //disable XP pull-up

                 //auto sequential measurement of XY position

                saveADCDLY = rADCDLY;

                rADCDLY = 40000;         //(1/50MHz)*40000=0.8ms
  注:如下图,在需要对X,Y转换时切换到GCLK,之前用X-Tal

  S3C2440 测试程序(五) 触摸屏实验 - lastnight1034 - lastnight1034的博客

 

                 rADCCON |= 0x01;                     //start ADC

                 while(rADCCON & 0x1);            //waiting for ADC startup

                 while(!(rADCCON & 0x8000));   //waiting for ADC end

                 while(!(rSRCPND & (0x1<<31)));//waiting for interrupt bit=1

                 xdata = rADCDAT0 & 0x3ff;

                 ydata = rADCDAT1 & 0x3ff;
   注: 读取buffer里的X,Y坐标数据

                 if(((xdata-xdata_save > 5)||(xdata-xdata_save < -5))\

                 ||((ydata-ydata_save > 5)||(ydata-ydata_save < -5)))

                 {

                         Uart_Printf("X_value = %d,Y_value = %d,X_data = %d,Y_data = %d\n",\
                                        xdata,ydata,xdata_save,ydata_save);

                 }

                 xdata_save = xdata;

                 ydata_save = ydata;

                 
                         rSUBSRCPND |= (1<<9);

                 rINTSUBMSK =~(1<<9);

                 rSRCPND |= (0x1<<31);

                 rINTPND |= (0x1<<31);

                 rINTMSK = ~(0x1<<31);

   注: 清所有跟中断有关的标志位,为下次中断做准备

                         rADCTSC =0xd3;      //waiting for interrupt

                 rADCTSC |= 0x100;  //stylus up

                 while(!(rSUBSRCPND & (1<<9)));  //waiting for stylus up interrupt bit=1

 
  Uart_Printf("The pen has stylus up.");

  rSUBSRCPND |= (1<<9);

  rINTSUBMSK =~(1<<9);

  rSRCPND |= (0x1<<31);

  rINTPND |= (0x1<<31);

  rINTMSK = ~(0x1<<31);
  注: 清所有跟中断有关的标志位,为下次中断做准备

  rADCDLY = saveADCDLY;

  rADCTSC &= ~0x100;  //stylus down

        

}


关键字:S3C2440  触摸屏实验 引用地址:S3C2440 测试程序(五) 触摸屏实验

上一篇:TFT LCD的显色原理
下一篇:S3C2440 测试程序(四) 外部中断实验

推荐阅读最新更新时间:2024-03-16 15:23

S3C2440—8.读写SDRAM
SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写 一.内部结构 原理图如下: 存储逻辑结构: 可以看出SDRAM的内部是一个阵列,就像表格一样,其寻址方式是按照块、行、列来的,即先选定SDRAM芯片,然后发出块信号确定那一块,再发出行信号确定哪一行,再发出列信号确定哪一列。 CPU对SDRAM的访问可以分为以下几步: CPU对存储控制器发出统一编址 内存控制器发出片选信号
[单片机]
<font color='red'>S3C2440</font>—8.读写SDRAM
MDK S3C2440启动代码简单分析
ARM启动代码相当于我们电脑的BIOS,也就是ARM启动时对处理器的一些初始化及嵌入式系统硬件的一些初始化。由于它直接面对处理器内核和硬件控制器进行编程,一般都是用汇编语言。 一般包括:中断向量表,初始化存储器系统,初始化堆栈,初始化有特殊要求的断口,设备初始化,变量初始化等。 ;/*****************************************************************************/ ;/*S3C2440A.S: Startup file for Samsung S3C440A */ ;/********************************
[单片机]
uboot-2011.12移植到S3C2440(序一)——ELF可执行文件及其组成
我们可以把可执行文件分为2种情况:存放态和运行态 1.存放态:可执行文件经过烧到存储介质上(flash或磁盘)的分布,此时可执行文件通常有2部分组成,代码段和数据段,代码段又分为可执行代码段 (.text)和只读数据段(.rodata),数据段可以分为初始化数据段(.data)和未初始化代码段(.bss),如下: +-------------+----------- | .bss | (ZI) +-------------+-- 数据段 | .data | (RW) +-------------+----------- | .rodata | |_____________| 代码段(RO) | .text | +--
[单片机]
uboot-2011.12移植到S3C2440(序二)—— binutils二进制工具集与u-boot
概述 binutils是一组二进制工具集,它包括addr2line、ar、gprof、nm、objcopy、objdumpr、ranlib、size、strings、strip等。 ar软件 ar用于建立、修改、提取库文件。ar至少需要两个参数才能运行,比如: $ ar rv libtest.a add.o minus.o 是指将add.o、minus.o做成库文件libtest.a。其中r是指将文件列表插入归档文件,v是指得到操作版本号。 这样我们引用库文件的时候就可以使用: $ gcc -o test test.c -ltest nm软件 nm软件的作用是现实目标文件的信息和属性,比如: $ nm test.o
[单片机]
s3c2440——按键中断
s3c2440的异常向量表: IRQ中断地址是0x18.所以,根据之前的异常处理方式,我们编写启动文件: 为什么需要lr减4,可以参考这篇文章: http://blog.csdn.net/zzsfqiuyigui/article/details/23334177 这是为了保证,当cpu正在执行某条指令时被中断打断,中断返回的时候,要继续执行这条被打断的指令,如果不减去4,cpu处理完中断之后,将会在被打断执行的这条指令的下一条指令开始执行(因为lr_irq保存的是下一条指令执行的地址),就会丢失掉这个被打断指令的执行,所以,保存中断处理完毕的返回地址很重要。 void handle_irq_c(void) {
[单片机]
<font color='red'>s3c2440</font>——按键中断
S3C2440裸机------触摸屏_利用ADC读取触摸屏坐标
前面我们在按下触摸屏时只是打印调试信息,现在我们再按下的中断处理函数里面增加ADC的配置代码,当我们按下后利用ADC读取触摸屏的坐标。 #include ../s3c2440_soc.h #define ADC_INT_BIT (10) #define TC_INT_BIT (9) #define INT_ADC_TC (31) /* ADCTSC's bits */ #define WAIT_PEN_DOWN (0 8) #define WAIT_PEN_UP (1 8) #define YM_ENABLE (1 7) #define YM_DISABLE (0 7) #de
[单片机]
网上S3C2440驱动TFT屏资料
网上资料 TFT屏 -支持单色、4级灰度、256色的调色板显示模式 -支持64K和16M色非调色板显示模式 -支持分辩率为640*480,320*240及其它多种规格的LCD 对于控制TFT屏来说,除了要给它送视频资料(VD )以外,还有以下一些信号是必不可少的,分别是: VSYNC(VFRAME) :帧同步信号 HSYNC(VLINE) :行同步信号 VCLK :像数时钟信号 VDEN(VM) :数据有效标志信号 一般的TFT屏工作时序 外部引脚信号: VSYNC: 垂直同步信号,表示扫描1帧的开始。 HSYNC: 水平同步信号,表示扫描1行的开始。 VDEN:数据使能信号。 VD : LCD像素数据输出端口。 VCLK:像素
[单片机]
网上<font color='red'>S3C2440</font>驱动TFT屏资料
基于嵌入式S3C2440的船舶导航系统设计
       文章在以ARMS3C2440为核的硬件平台上应用Linux操作系统开发了船舶导航系统,完成了系统的硬件设计、软件设计、交叉编译环境的建立、引导程序的移植、内核的移植、驱动程序的编写和根文件系统的建立等,实现了系统的功能。         1.前言        集计算机技术、通信技术、微电子技术等多种技术为一体的嵌入式技术进入到了一个飞速发展的阶段,嵌入式系统已被广泛应用到了航空、消费电子、信息家电、网络通信等各个领域。ARMS3C2440ARM是嵌入式处理器是性价比较优秀的芯片,在各个领域的开发应用有着广阔的应用前景。        船舶导航技术也应随着科学技术背景的改变不断地向着高性能稳定性的方面发展,潜
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved