Hi, I'm trying to read the internal temp of the ads1247 and I am getting gibberish. here is my code can someone tell me what I am doing wrong? I'm test the IC on a arduino uno, but after I manage to get it to work I am going to port the program to a couple of pic18 mcus
#include <SPI.h> unsigned long A2DVal =0x0; void setup() { pinMode(10, OUTPUT); pinMode(9, INPUT); //pinMode(11, OUTPUT); //pinMode(12, INPUT); //pinMode(13, OUTPUT); SPI.beginTransaction(SPISettings(500000, MSBFIRST, SPI_MODE1)); delay(2000); SPI.begin(); //turn on spi bus /* * prog interruptfor drdy */ SPI.transfer(0x06);//reset ad delay(1); SPI.transfer(0x16);//issue sdatac SPI.transfer(0x40);//mux0 SPI.transfer(0x00); SPI.transfer(0x01); SPI.transfer(0x42);//mux1 SPI.transfer(0b00000000); SPI.transfer(0b00110011); //SPI.transfer(0x00); //SPI.transfer(0x33); SPI.transfer(0x43);//sys0 SPI.transfer(0x00); SPI.transfer(0b00000000); SPI.transfer(0x4A);//IDAC0 SPI.transfer(0x00); SPI.transfer(0x07); SPI.transfer(0x4b);//IDAC1 SPI.transfer(0x00); SPI.transfer(0x01); Serial.begin(115200); } void loop() { if (digitalRead(9) == 0){ Serial.println("cowabunga"); digitalWrite(10,LOW); A2DVal = 0x0; SPI.transfer(0x12); Serial.print(A2DVal,HEX); A2DVal |= SPI.transfer(0xff); A2DVal << 8; Serial.print(A2DVal,HEX); A2DVal |= SPI.transfer(0xff); A2DVal <<8; Serial.print(A2DVal,HEX); A2DVal |= SPI.transfer(0xff); Serial.println(A2DVal,HEX); delay(1); } }