ads7843.c

来自「一个自己编译0通过的绝对能用的GUI移植到44B0」· C语言 代码 · 共 62 行

C
62
字号
#include "44b.h"
#include "44blib.h"
#include "def.h"
#include "ads7843.h"


int U16 RD_AD(int ch)
{
    int i;
    static int prevCh=-1;

    if(prevCh!=ch)
    {
    	rADCCON=0x0|(ch<<2);	//setup channel.
    	for(i=0;i<150;i++);	//min. 15us
    }
    rADCCON=0x1|(ch<<2);	//Start A/D conversion
    while(rADCCON &0x1);	//To avoid The first FLAG error case.
				//(The START bit is cleared in one ADC clock.)
    while(!(rADCCON & 0x40));
    for(i=0;i<rADCPSR;i++); 	//To avoid The second FLAG error case
    prevCh=ch;
    return rADCDAT;
}


int Read_X(void) { 
	int i;
	//TSPX(GPE3) TSMX(GPE4)  TSPY(GPE6) TSMY(GPE7) 
        //  0		1	       1          0
	rPDATE=rPDATE&(~(0x01<<7))|(0x01<<6);
    rPDATE=rPDATE&(~(0x01<<3))|(0x01<<4);
//	while(TP_BUSY);
	for(i=0;i<5;i++);
	i=RD_AD(1);
	return i;   
}

int Read_Y(void) { 
	int i;
	
    rPDATE=rPDATE&(~(0x01<<6))|(0x01<<7);
    rPDATE=rPDATE&(~(0x01<<4))|(0x01<<3);
	
//	while(TP_BUSY);
	for(i=0;i<5;i++);
	i=RD_AD(0);
	return i;    
}
/******************************************************************************
 *	get A/D xy
 */
void TP_GetAdXY(int *x,int *y) {
	int adx,ady;
	
	adx=Read_X();
	ady=Read_Y();
	
	*x=adx;
	*y=ady;
}

⌨️ 快捷键说明

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