基于PXA255的触摸屏控制器ADS7843驱动程序设计

时间:2012-04-20来源:网络

5) ADS7843 具体操作函数

①ADS7843 串行输出控制字函数

void ADS7843_din (char command)

udelay(DELA Y) ; / / 延时

for (int i = 0 ; i 8 ; i + + ) / / 从串行输入端输入8 位控制字

{  ADS7843_ClearBit (0 , ADS7843_CL K) ; / / 时钟变低,下降沿输出

if ( (command > > i) 0x1)

ADS7843_SetBit (0 , ADS7843_DIN) ; / / 数据位为1

el se

ADS7843_ClearBit (0 , ADS7843_DIN) ; / / 数据位为0

udelay (DELA Y) ;

ADS7843_SetBit (0 , ADS7843_CL K) ;}} / / 时钟变高

②微处理器读取X 坐标值函数(读取Y坐标值函数相类似,控制字为0x90)

int ADS7843_t s_measure_x (void)

{ char i , int touch_data = 0 ;

ADS7843_ClearBit (0 , ADS7843_CS) ; / / 片选端置低电平

udelay(DELA Y) ;

ADS7843_din (0xD0) ;    / / 向ADS7843 发送读X 坐标控制字0xD0

ADS7843_ClearBit (0 , ADS7843_CL K) ;

udelay(DELA Y) ;

while ( ! ( GPLR0 GPIO_ bit (ADS7843 _BUSY) ) ) print k ( “BUSY1 n” ) ;

ADS7843_ClearBit (0 , ADS7843_CL K) ;

for (i = 0 ; i 15 ; i + + )    / / 读取坐标值

{ touch_data = 1 ;

if ( GPLR0 GPIO_bit (ADS7843_DOU T) )

touch_data | = 0x01 ;

else

touch_data = 0xffffe ;

ADS7843_SetBit (0 , ADS7843_CL K) ;

udelay(DELA Y) ;

ADS7843_ClearBit (0 , ADS7843_CL K) ;}

touch_data > > = 3 ;/ / 对最后4 位自动置0 处理

return (touch_data 0xfff) ;}

1 2 3 4

关键词: 驱动 程序设计 ADS7843 控制器 PXA255 触摸屏 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版