TolpuddleSartre:
No.
You've probably done something wrong
Where abouts in the code?
#include <SPI.h>
//Set Slave Select Pin
//MOSI, MISO, CLK are handled automatically
int CSN = 10;
int SO = 12;
int SI = 11;
int CLK = 13 ;
unsigned int angle;
int dis = 0;
void setup() {
Serial.begin(115200);
//Set Pin Modes
pinMode(CSN, OUTPUT);
pinMode(SI, OUTPUT);
pinMode(SO, INPUT);
pinMode(CLK, OUTPUT);
//Set Slave Select High to Start i.e disable chip
digitalWrite(CSN, HIGH);
//Initialize SPI
SPI.begin();
}
void loop() {
SPI.beginTransaction(SPISettings(10000000, MSBFIRST, SPI_MODE1));
//Send the Command Frame
digitalWrite(CSN, LOW);
delayMicroseconds(1);
SPI.transfer16(0xFFFF);
digitalWrite(CSN,HIGH);
//Read data frame
digitalWrite(CSN, LOW);
delayMicroseconds(1);
angle = SPI.transfer16(0xC000);
digitalWrite(CSN, HIGH);
SPI.endTransaction;
angle = (angle & (0x3FFF));
int pos = ( (unsigned long) angle)*360UL/16384UL;
int dis = (pos * (3.1415/180));
unsigned long start_time=micros(); //record start time
unsigned long delta_t = micros() - start_time; //the difference
Serial.print ("Angle in degrees =\t");
Serial.print (pos);
Serial.print("\t Angle in Rads =\t");
Serial.print (dis);
Serial.print("\t Time =\t");
Serial.println (delta_t);
delay(500);
} /[code]