⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ads7843.c

📁 这套代码已经成功一直到S3C44B0X开发板上
💻 C
字号:
//==================================================================
//文件: ADS7843.c                         
//修改: 李光祥 chenfengmcu@126.com
//日期: 2008/10/9
//描述: 
//
//版本历史记录  V1.0  
//==================================================================
#include "44b.h"
#include "ads7843.h"

static INT16U x,y;
//------------------------------------------------------------------
// 函数名  : void ADS7843_Delay(INT8U time)
// 输入    : 延时时间
// 输出    : Null
// 全局变量: Null
// 功能描述: 延时
//------------------------------------------------------------------
void ADS7843_Delay(INT8U time)
{
    INT8U i;
    for(i=0;i<time;i++);
}
//------------------------------------------------------------------
// 函数名  : void ADS7843_Init(void)
// 输入    : Null
// 输出    : Null
// 全局变量: Null
// 功能描述: 初始化
//------------------------------------------------------------------
void ADS7843_Init(void)
{
    //端口配置?
}
//------------------------------------------------------------------
// 函数名  : INT16U ADS7843_Get(INT8U cmd)
// 输入    : cmd 配置命令
// 输出    : 坐标
// 全局变量: Null
// 功能描述: 得到坐标
//------------------------------------------------------------------
INT16U ADS7843_Get(INT8U cmd)
{
    INT16U buf=0;
    INT8U temp,i;
   
    TP_DCLK(0);
	TP_CS(1);
	TP_DIN(1);
    TP_DCLK(1);
    TP_CS(0);
    
    ADS7843_Delay(5);            //40us
    //while(TP_BUSY);            //等待转换完成
    
    TP_DCLK(0);
	for(i=0;i<8;i++)
	{
		temp = (cmd>>(7-i))&0x1;//MSB在前,LSB在后
		TP_DIN(temp);	 	    //时钟上升沿锁存DIN
		
		ADS7843_Delay(25); 	    //200ns
		TP_DCLK(1);			    //开始发送命令字
		
		ADS7843_Delay(25); 	    //200ns
		TP_DCLK(0);			    //时钟脉冲
	}
	ADS7843_Delay(25); 	        //200ns
	for(i=0;i<12;i++)
	{
		buf=buf<<1 ;
		
		TP_DCLK(1);
		ADS7843_Delay(25); 	    //200ns
		TP_DCLK(0);			
		ADS7843_Delay(5); 	    //时钟下降沿读取,MSB在前

		if(TP_DOUT)	buf=buf+1;
		ADS7843_Delay(20); 	    //200ns
	}
	for(i=0;i<4;i++)
	{
		TP_DCLK(1);
		ADS7843_Delay(25); 	    //200ns
		TP_DCLK(0);			
		ADS7843_Delay(25); 	    //200ns
	}
	TP_CS(1);
	return buf;   
}
//------------------------------------------------------------------
// 函数名  : INT16U ADS7843_GetX(void)
// 输入    : cmd 配置命令
// 输出    : 坐标
// 全局变量: Null
// 功能描述: 得到坐标X
//------------------------------------------------------------------
INT16U ADS7843_GetX(void)
{
     INT16U x0,x1;
     
     if(TP_IRQ==0)
	 {
		 x0=ADS7843_Get(CHX)/(4095/240);
		 x1=ADS7843_Get(CHX)/(4095/240);
		 if(x0==x1)  x=x0;	      	
	 }
	 else
	 {
	     x=0;
	     y=0;
	 }
	 return x;
}
//------------------------------------------------------------------
// 函数名  : INT16U ADS7843_GetY(void)
// 输入    : cmd 配置命令
// 输出    : 坐标
// 全局变量: Null
// 功能描述: 得到坐标Y
//------------------------------------------------------------------
INT16U ADS7843_GetY(void)
{
     INT16U y0,y1;
     
     if(TP_IRQ==0)
	 {
		 y0=ADS7843_Get(CHY)/(4095/320); 
		 y1=ADS7843_Get(CHY)/(4095/320);
		 if(y0==y1)	 y=y0;     	      	
	 }
	 else
	 {
	     x=0;
	     y=0;
	 }
	 return y;
}
//------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -