📄 ad.c
字号:
#include "bf5xx.h"
#include "types.h"
static uint8_t Xdat[2],Ydat[2];
/****************************************************************************
* 名称 : ADS_SPI_Init
* 功能 : 初始化SPI 控制器 设置波特率 发送模式 允许SPI控制器
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void ADS_SPI_Init(void)
{
*pFIO_FLAG_S = PF2;
SPIinit();
SPIMenable();
SPIMODE_TX();
}
/****************************************************************************
* 名称 : ADS_SEND
* 功能 : 向ADS7843 /AD7843 发送数据
* 入口参数 :dat 发送到ADS7843 /AD7843 数据
* 出口参数 :无
****************************************************************************/
void ADS_SEND(uint8_t dat)
{
SPIMenable();
SPIMODE_TX();
SPIsend(dat);
udelay(0x7fff);
SPIdisable();
udelay(0x7fff);
}
/****************************************************************************
* 名称 : ADS_RX
* 功能 : X 坐标接收函数
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void ADS_RX(void)
{
SPIMenable();
SPIMODE_RX();
if(*pSPI_STAT&RXS)
{
Xdat[0] = *pSPI_RDBR;
}
Xdat[1] = SPIReadByte();
udelay(0x7fff);
udelay(0x7fff);
SPIdisable();
}
/****************************************************************************
* 名称 : ADS_RY
* 功能 : Y 坐标接收函数
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void ADS_RY(void)
{
SPIMenable();
SPIMODE_RX();
if(*pSPI_STAT&RXS)
{
Ydat[0] = *pSPI_RDBR;
}
Ydat[1] = SPIReadByte();
udelay(0x7fff);
udelay(0x7fff);
SPIdisable();
}
/****************************************************************************
* 名称 : ADS_INT_Disable
* 功能 : ADS7843 /AD7843 中断禁止
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void ADS_INT_Disable(void)
{
ADS_SEND(0x19);
}
/****************************************************************************
* 名称 : ADS_INT_Enable
* 功能 : ADS7843 /AD7843 中断允许
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void ADS_INT_Enable(void)
{
ADS_SEND(0x18);
}
/****************************************************************************
* 名称 : ADS_READ
* 功能 : 读取坐标
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void ADS_READ(void)
{
ADS_INT_Disable();
ADS_SEND(0x98);
udelay(0x7fff);
ADS_RY();
udelay(0x7fff);
ADS_SEND(0xd8);
udelay(0x7fff);
ADS_RX();
printf("\nXdata is %d\r\n",Xdat[0] );
printf("Ydata is %d\r\n",Ydat[0] );//把这两句话打印的话删去可以大大提高中断速度
ADS_INT_Enable();//开中断
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -