📄 ads8364.c
字号:
#include <reg52.h>
#include <intrins.h>
#include "TypeDefines.h"
#include "delay.h"
#include "ADS8364.h"
void clock(uchar num)
{
uchar i;
for(i=0;i<num;i++)
{
CLK=0;_nop_();
CLK=1;_nop_();
}
}
void ADS8364_read(uchar ad_num,uchar num)
{
uchar i,j,tmp8;
uint tmp16=0;
ulong tmp32[4]={0};
P1=0xff;
for(j=0;j<num;j++)
{
ADS8364_init();
ADS8364_start();
clock(19);
if(ad_num==1)
{
AD1_CS_LOW;
}
else
{
AD2_CS_LOW;
}
for(i=0;i<2;i++)
{
RD_AD=0; _nop_();
RD_AD=1; _nop_();
RD_AD=0; _nop_();
RD_AD=1; _nop_();
RD_AD=0; _nop_();
RD_AD=1; _nop_();
}
for(i=0;i<4;i++)
{
RD_AD=0; _nop_();
tmp8=P1; _nop_();
RD_AD=1; _nop_();
RD_AD=0; _nop_();
tmp8=P1; _nop_();
RD_AD=1; _nop_();
RD_AD=0; _nop_();
tmp16=(uint)P1;
RD_AD=1;_nop_();
tmp16<<=8;
tmp16+=tmp8;
if(tmp16>=0x8000)
{
tmp16&=0x7FFF;
}
else
{
tmp16|=0x8000;
}
tmp32[i]+=tmp16;
}
AD1_CS_UP;
}
for(i=0;i<4;i++)
{
tmp32[i]<<=7;
if(ad_num==1)
{
Data1[i]=(uint)(tmp32[i]/para1[i]);
Data1[i]-=origin1[i];
}
else
{
Data2[i]=(uint)(tmp32[i]/para2[i]);
Data2[i]-=origin2[i];
}
}
}
void ADS8364_start()
{
CLK=0; _nop_();
HOLD=0; _nop_();
CLK=1; _nop_();
HOLD=1; _nop_();
}
void ADS8364_init()
{
AD1_CS_UP; _nop_();
RD_AD=1; _nop_();
CLK=1; _nop_();
HOLD=1; _nop_();
RESET=1; _nop_();
_nop_(); _nop_();
RESET=0; _nop_();
_nop_(); _nop_();
RESET=1; _nop_();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -