void ad_send(unsigned char sdata)//发送一个字节数据,连续写数据时用。
{
unsigned char i=8;
while (i--){
P3OUT|=0X08;
if (sdata & 0x80)
P3OUT |= ADS1256_DIN;
else
P3OUT &= ~ADS1256_DIN;
_NOP();
_NOP();
P3OUT&=~0X08;
sdata<<=1;
}
usdelay(5);
}
void ad_wreg(unsigned char reg,unsigned char wdata)//写寄存器。选择寄存器地址,写入的数据。
{
P4OUT=0X00;
//ad_send(0x0f); //停止采集//
while(!(P3IN&ad_drdy));//DRDY信号高时才能写寄存器
ad_send(0x50+reg);//选择写入寄存器
ad_send(0x00); //写入1个寄存器
ad_send(wdata); //写入数据
//ad_send(0xfc); //SYNC
//ad_send(0xff); //WAKEUP
P4OUT=0X07;
//开始连续采集//
usdelay(250); //可更改。但读数据必须在要等待最小一个采集周期(大约90ms)后。
}
/*************************************************************************************/
/*void ad_ch(unsigned char ch) //选择通道。 高4位 正向通道;低4位 负向通道。
{
//选择通道寄存器地址,写入数据。
}*/
/*************************************************************************************/
unsigned long ad_read()//读A/D数据。
{
unsigned char r;
rdata=0;
P4OUT=0X00;
ad_send(0xfc); //SYNC
ad_send(0xff); //WAKEUP
while (!(P3IN&ad_drdy));
//while(P3IN&ad_drdy)
{
ad_send(0x01);
for (r=0;r<24;r++)
{
rdata<<=1;
P3OUT|=0X08;
_NOP();
if (P3IN & ADS1256_DOUT){rdata++;}
P3OUT&=~0X08;
_NOP();_NOP();
}
//usdelay(10);
//ad_send(0x0f);
P4OUT=0X07;
usdelay(100);
}
return rdata;
}
/*****************************************************************************/
/*unsigned long ad_readch(unsigned char ch)//读某通道A/D数据。
{
ad_wreg(R_MUX,ch);
//usdelay(50); //要等待最小一个采集周期完后,才能读数据。
return ad_read();
}*/
ADS1256.rar_ ads1256_ADS1256_ads1256 co_ads1256 pudn_ads1256 程序
版权申诉
159 浏览量
2022-07-15
15:35:30
上传
评论
收藏 1KB RAR 举报
小波思基
- 粉丝: 74
- 资源: 1万+
最新资源
- 【MATLAB GUI仿真】实战攻略:从零基础到精通-Markdown文章材料.zip
- jmeter 5.6.3 grpc 压测客户端源码
- 基于MATLAB仿真的BCC卷积码维特比译码算法
- 【618电商节IT攻略】:优化技术资源,打造流畅购物体验-Markdown文章材料.zip
- content_1718244453742.xlsx
- 234372619969023TikTok-v1.42_plugin.apk
- 基于深度学习的小麦生长阶段预测(检测小麦生长的7个阶段)
- Delphi 12 控件之输入法WM-IME-CHAR.zip
- jdk-8u411-linux-aarch64.tar.gz
- cudnn-windows-x86-64-8.9.7.29-cuda12-archive.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈