Ejemplo n.º 1
0
void AD7843(void)              //外部中断0 用来接受键盘发来的数据
{
	 CS=0;
	//delayms(1);                     //中断后延时以消除抖动,使得采样数据更准确
	//while(BUSY);                //如果BUSY信号不好使可以删除不用
	//delayms(1);
	WriteCharTo7843(0x90);        //送控制字 10010000 即用差分方式读X坐标 详细请见有关资料
	//while(BUSY);               //如果BUSY信号不好使可以删除不用
	//delayms(1);
	DCLK=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	DCLK=0; 
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	TP_Y=ReadFromCharFrom7843();
	WriteCharTo7843(0xD0);       //送控制字 11010000 即用差分方式读Y坐标 详细请见有关资料
	DCLK=1; 
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	DCLK=0;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	TP_X=ReadFromCharFrom7843();
	CS=1;
}
Ejemplo n.º 2
0
//从7846/7843/XPT2046/UH7843/UH7846读取adc值	  0x90=y   0xd0-x
u16 ADS_Read_AD(unsigned char CMD)          
{
u16 l;
CS=0;
WriteCharTo7843(CMD);        //送控制字即用差分方式读X坐标 详细请见有关资料
DCLK=1; _nop_();_nop_();_nop_();_nop_();
DCLK=0; _nop_();_nop_();_nop_();_nop_();
l=ReadFromCharFrom7843();
CS=1;
return l;
}		   
Ejemplo n.º 3
0
void Read_Position_ADS7843(void)
  {
	unsigned int X, Y;  
    static const unsigned char Cmd_X = 0x90, Cmd_Y = 0xD0;
    

    CS_0;
	
    DCLK_0;

    WriteCharTo7843(Cmd_Y);
    //__delay_cycles(4000); 
	DCLK_1; __delay_cycles(BIT_DELAY);
	DCLK_0; __delay_cycles(BIT_DELAY);
    ad_result[0] = ReadFromCharFrom7843();
	
    WriteCharTo7843(Cmd_X);
	//__delay_cycles(4000);
    DCLK_1; __delay_cycles(BIT_DELAY);
    DCLK_0; __delay_cycles(BIT_DELAY);	
    ad_result[1] = ReadFromCharFrom7843(); 

  }