mini2440裸机之Touchpanel
article from : http://blog.sina.com.cn/s/blog_684e87fa0101005c.html
#include "2440addr.h"
#include "2440lib.h"
#define REQCNT 30
#define ADCPRS 9 //YH0627,AD转换器预分频器值
#define LOOP 1
volatile int xdata, ydata; //x、y坐标
void Test_Touchpanel(void)
{
;那么延迟时间为(1/3.68M)*rADCDLY
rADCCON=(1<<14)+(ADCPRS<<6); //预分频:PCLK/10,分频位使能,A/D 转换器频率 = PCLK / (预分频值+1);//转换时间 = 1/(AD转换频率/ 5 周期)
rINTMSK=~BIT_ADC; //ADC中断屏蔽位无效,ADC总中断INT_ADC开启
rINTSUBMSK=~(BIT_SUB_TC); //ADC触摸屏子中断开启
Uart_Printf("\nStylus Down, please...... \n");
Uart_Getch(); //该函数作用在于等待用户的触摸,然后触发中断,其实为等待触摸中断,直到用户从键盘随便输入一个字符后,结束该死循环,然后往下继续执行
rINTMSK|=BIT_ADC; //关闭ADC总中断
Uart_Printf("Touch Screen Test is Finished!!!\n");
void __irq AdcTsAuto(void)
int i;
{
//Uart_Printf("\nStylus Up!!\n");
rADCTSC&=0xff; // Set stylus down interrupt bit
}
//else
//Uart_Printf("\nStylus Down!!\n");
saveAdcdly=rADCDLY;
rADCDLY=40000; //Normal conversion mode delay about (1/50M)*40000=0.8ms,即重设等待转换测量时间
rADCCON|=0x1; //start ADC
while(!(rADCCON & 0x8000)); //等待转换结束,可以读取转换后的数值了
while(!(rSRCPND & (BIT_ADC))); //判断ADC的中断悬挂位BIT_ADC,若为1,则说明该中断已经产生,可以处理按下的数据了
xdata=(rADCDAT0&0x3ff); //读取X方向的转换数值
rSUBSRCPND|=BIT_SUB_TC; //清除子中断标志
ClearPending(BIT_ADC);
rINTSUBMSK=~(BIT_SUB_TC); //重新打开中断,为触摸笔抬起中断做准备
rINTMSK=~(BIT_ADC);
//这一次的中断设为触笔抬起中断,触摸笔抬起了,一个触摸中断才算结束,才可以读取数据
rADCTSC =0xd3; //再设为等待中断模式
rADCTSC=rADCTSC|(1<<8); //设置为触笔抬起中断,但不读取此中断的数据,因为按下和抬起是同一点,上面已经处理了按下的数据
{
if(rSUBSRCPND & (BIT_SUB_TC)) //判断ADC子中断BIT_SUB_TC
//Uart_Printf("Stylus Up Interrupt~!\n");
break; //说明笔尖已经抬起,一个触摸中断终于结束,下面读取数据,跳出循环
}
rADCTSC=rADCTSC&~(1<<8); //重新设为触摸笔按下中断,为下次的触摸做准备
rSUBSRCPND|=BIT_SUB_TC; //清除中断标志
rINTSUBMSK=~(BIT_SUB_TC); //重新开启中断
ClearPending(BIT_ADC);
}
mini2440裸机之Touchpanel相关推荐
- MINI2440裸机实验之SDRAM
MINI2440裸机实验之SDRAM 参考文章 <嵌入式应用开发完全指南> S3C2440 SDRAM SDRAM介绍 有关SDRAM的介绍以及S3C2440的SDRAM操作下面的文章介绍 ...
- mini2440 裸机编程 -led
又重新做回了嵌入式,想把以前学到的东西从头复习一下.首先从裸机编程开始. 本系列使用的硬件环境是友善之臂的 mini2440,百问网的OpenJtag,所有程序在 linux gcc下编译, 具体硬件 ...
- mini2440裸机音乐播放器(非常久曾经的笔记)
[这是好久曾经写的.有点乱,没时间整理.当做记录用的.] 图片粘贴失效.没上传图,想要的直接下载文档吧. 项目目的:通过IIS,触摸屏,LCD模块实现音乐播放器功能(button上一首.下一首.播放. ...
- 一起学mini2440裸机开发(十)--mini2440外部中断实验
我今天一整天都在试着将TQ2440的那种处理中断的方法(即安装中断向量表)移植到MDK中的mini2440,但是一直没成功,这种方法一直没成功,后来又想,还是先从最简单的开始吧,就是不利用中断向量表, ...
- 八、mini2440裸机程序之UART(2)UART0与PC串口通信【转】
转自:http://blog.csdn.net/shengnan_wu/article/details/8309417 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.相关原理图 2.相关寄 ...
- 九.mini2440实现I2C协议裸机程序(完成)
** I2C协议的mini2440裸机程序实现 ** 上篇博客说道了I2C的理论知识,但是实际应用的时候,遇到很多的问题,加上程序的庞大,一直在调试.这几天重新看了一下,最终解决问题. 首先的问题是程 ...
- 使用 NOR Flash 中的supervivi 下载裸机程序到NandFlash
不容易啊,终于把 将MDK程序下载到我的mini2440开发板上的nand flash的方法找到了,我是利用韦东山老师的那套方法即利用DNW和supervivi下载到nand flash的.当然,只是 ...
- MINI2440 MPLL
MINI2440裸机实验之MPLL 1. S3C2440时钟系统 s3c2410/s3c2440的时钟控制逻辑既可以外接晶振,然后通过内部电路产生时钟源:也可以直接使用外部提供的时钟源,他们通过引脚的 ...
- u-boot,linux,文件系统移植笔记1
今天把u-boot,linux,yaffs2文件系统的移植全部搞定了,在我的mini2440板子上跑起来了,呵呵,兴奋啊!现在回头看看自己花了这么长时间所作的工作,结论就是,只要坚持下去就一定会成功的 ...
- aiku基于mini2440下裸机程序开发《概述与SDRAM运行》
大家好,我是aiku,今天主要跟大家介绍一些 基于mini2440下裸机程序开发<概述与SDRAM运行> 有什么问题:都可以联系我们,谢谢! 我是aiku,本博客主要写一些我们的项目经验与 ...
最新文章
- 多媒体广告的底线在哪里
- 程序猿充电的五本优质编程技术书
- mfc 找到字符串中字符_利用滑动窗口解LeetCode438题:找到字符串中所有字母异位词...
- 抓取手机https_python爬虫入门02:教你通过 Fiddler 进行手机抓包
- 名片管理系统python详解_名的解释|名的意思|汉典“名”字的基本解释
- 怎么让图片手机上排列_荣耀手机系列档次怎么排列?
- 关于Breeze's MapHack 2.0的一些重要说明
- CentOS7.4安装及断网问题解决方案
- 2017-2018-1 20155222 《信息安全系统设计基础》课上实验2、3
- 如何使用火狐下的两款接口测试工具RESTClient和HttpRequester发送post请求
- 蔚蓝网上书店项目js/jQuery部分
- 高纬度思考法读书笔记
- 【C#】分享一个可携带附加消息的增强消息框MessageBoxEx
- 第五次作业:项目分类
- 知识融合中几种计算文本相似度的方法(代码)
- 鼠标右键点击文件夹、bat文件、txt文档,指针出现假死转圈的解决方法(Adobe Acrobat右键邮件选项引起的win10假死)
- 【语音之家】AI产业沙龙—语音技术在贝壳的应用
- S32K144 bootloader 方案设计
- 区块链跨境支付解决方案
- idea的使用6——项目的打包处理