|
发表于 2022-4-22 06:59:20
|
显示全部楼层
或者简化为如下代码
while(1){ //当ads1256受到干扰,数据移出异常,须反复读取,直到正确.通常最多8次读取就可以得到正确数据
ads1256_w1b(CMD_RDATA); //读数据
ads1256_delay(25); //25对应10us,须延时6.6us以上才能读取数据(详见ads1256手册的t6)
v = ads1256_r1b(); v <<= 8; //读数据到v. v用移位法是低效的,但兼容性好
v += ads1256_r1b(); v <<= 8;
v += ads1256_r1b();
if(P_DRDY) break;; //已读到正常的读数
P_SCK=1; ads1256_delay(1); //输出SCK脉冲
P_SCK=0; ads1256_delay(1);
}
|
|