ADS7606芯片STC15L2K60S2单片机读写驱动程序KEIL工程文件源码,
void main(void)
{
uint8_t ucRefresh = 0;
uint8_t ucFifoMode = 0;
bsp_Init(); /* 初始化底层硬件。 该函数在 bsp.c文件 */
PrintfLogo(); /* 打印例程logo */
PrintfHardInfo(); /* 打印硬件接线信息 */
bsp_DelayMS(100);
bsp_InitAD7606();
bsp_StartAutoTimer(0, 500);
while(1)
{
bsp_Idle();
if (ucRefresh == 1)
{
ucRefresh = 0;
/* 处理数据 */
ad7606_mak();
/* 打印ADC采样结果 */
ad7606_disp();
}
if (ucFifoMode == 0) /* AD7606 普通工作模式 */
{
if (bsp_CheckTimer(0))
{
/* 每隔500ms 进来一次. 由软件启动转换 */
ad7606_Scan();
ucRefresh = 1; /* 刷新显示 */
}
}
else
{
/*
在FIFO工作模式,bsp_AD7606自动进行采集,数据存储在FIFO缓冲区。
结果可以通过下面的函数读取:
uint8_t AD7606_ReadFifo(uint16_t *_usReadAdc)
你可以将数据保存到SD卡,或者保存到外部SRAM。
本例未对FIFO中的数据进行处理,进行打印当前最新的样本值。
如果主程序不能及时读取FIFO数据,那么 AD7606_FifoFull() 将返回真。
8通道200K采样时,数据传输率 = 200 000 * 2 * 8 = 3.2MB/S
*/
if (bsp_CheckTimer(0))
{
ucRefresh = 1; /* 刷新显示 */
}
}
}
}
/*
*********************************************************************************************************
* 函 数 名: ad7606_mak
* 功能说明: 处理采样后的数据
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
void ad7606_mak(void)
{
uint8_t i;
int32_t tt;
for (i = 0;i < CH_NUM; i++)
{
s_dat[i] = ad7606_ReadAdc(i);
/* 32767 = 5V , 这是理论值,实际可以根据5V基准的实际值进行公式矫正 */
//volt[i] = ((int16_t)dat[i] * 5000) / 32767; /* 计算实际电压值(近似估算的),如需准确,请进行校准 */
// volt[i] = dat[i] * 0.3051850947599719
// 除以 3.2767
tt = s_dat[i];
s_volt[i] = (tt * 10000) / 32767;
}
}
/*
*********************************************************************************************************
* 函 数 名: ad7606_disp
* 功能说明: 处理采样后的数据
* 形 参:无
* 返 回 值: 无