📄 ads7843.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -