你好
我使用Arduino控制ads124s06來轉換類比-數位訊號
當我在控制時,我可以用RREG、WREG設定並讀取register
但是當我使用0x08啟動轉換,0x12 RDATA時,卻都看不到轉換數據(回傳都是0)
請幫我檢查我的code哪裡有錯好嗎?
謝謝
以下是我的code
#include <SPI.h>
#include <TimerOne.h>
#define STA 11
#define DRDY 12
#define RESET 13
const int CS = 53;
int stat;
int stat1;
int stat2;
int stat3;
int stat4;
int stat5;
volatile int DRDY_state = LOW;
SPISettings settings1(4000000, MSBFIRST, SPI_MODE1);
void setup() {
SPI.begin();
pinMode(CS,OUTPUT);
pinMode(RESET, OUTPUT);
pinMode(DRDY, INPUT);
pinMode(STA,OUTPUT);
digitalWrite(RESET , HIGH);
Serial.begin(115200);
SPI.beginTransaction(settings1);
digitalWrite(CS, LOW);
digitalWrite(STA,LOW);
}
void loop() {
for(int i=0;i>=0;i++)
if(i==0){
SPI.transfer(0x42); // WREG FL_POR
SPI.transfer(0x02); // WREG byte number -1
SPI.transfer(0x2C); // WREG write AIN2-AINCOM
SPI.transfer(0x00); // 03h PGA reg(closed)
SPI.transfer(0x10); // DATA RATE 20 SPS
SPI.transfer(0x08); // start converting command
delayMicroseconds(10);
}
else
{
//Serial.println("start converting");
SPI.transfer(0x12); //RDATA command
delayMicroseconds(10);
stat = SPI.transfer(0) ; // get data from miso
stat1= SPI.transfer(0);
stat2= SPI.transfer(0);
Serial.println("ADC output");
Serial.println(stat);
Serial.println(stat1);
Serial.println(stat2);
}
SPI.endTransaction();
}