first commit
This commit is contained in:
commit
eb804cc7d6
123
d72042.ino
Normal file
123
d72042.ino
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
#include <SPI.h>
|
||||||
|
|
||||||
|
#define MODE 8
|
||||||
|
#define CONTROL 9
|
||||||
|
#define READ 0x08
|
||||||
|
#define RESET 7
|
||||||
|
|
||||||
|
|
||||||
|
byte inline bitchange(byte b)
|
||||||
|
{
|
||||||
|
byte z=0;
|
||||||
|
if(b&0x8)
|
||||||
|
{
|
||||||
|
z|=0x10;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(b&0x4)
|
||||||
|
{
|
||||||
|
z|=0x20;
|
||||||
|
}
|
||||||
|
if(b&0x2)
|
||||||
|
{
|
||||||
|
z|=0x40;
|
||||||
|
}
|
||||||
|
if(b&0x1)
|
||||||
|
{
|
||||||
|
z|=0x80;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
z=b<<4;
|
||||||
|
|
||||||
|
return z;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define REG_WRITE_CTR bitchange(0x0)
|
||||||
|
#define REG_WRITE_CMR bitchange(0x1)
|
||||||
|
#define REG_WRITE_UAR1 bitchange(0x2)
|
||||||
|
#define REG_WRITE_UAR2 bitchange(0x3)
|
||||||
|
#define REG_WRITE_SAR1 bitchange(0x4)
|
||||||
|
#define REG_WRITE_SAR2 bitchange(0x5)
|
||||||
|
#define REG_WRITE_MCR bitchange(0x6)
|
||||||
|
#define REG_WRITE_TBF bitchange(0xe)
|
||||||
|
|
||||||
|
|
||||||
|
#define REG_READ_STR (bitchange(0x0)|READ)
|
||||||
|
#define REG_READ_FLG (bitchange(0x1)|READ)
|
||||||
|
#define REG_READ_RDR1 (bitchange(0x2)|READ)
|
||||||
|
#define REG_READ_RDR2 (bitchange(0x3)|READ)
|
||||||
|
#define REG_READ_LDR1 (bitchange(0x4)|READ)
|
||||||
|
#define REG_READ_LDR2 (bitchange(0x5)|READ)
|
||||||
|
#define REG_READ_DAR1 (bitchange(0x6)|READ)
|
||||||
|
#define REG_READ_DAR2 (bitchange(0x7)|READ)
|
||||||
|
#define REG_READ_RCR (bitchange(0x8)|READ)
|
||||||
|
#define REG_READ_RBF (bitchange(0xe)|READ)
|
||||||
|
|
||||||
|
|
||||||
|
void setup (void) {
|
||||||
|
Serial.begin(9600); //set baud rate to 115200 for usart
|
||||||
|
|
||||||
|
SPI.begin ();
|
||||||
|
SPI.setClockDivider(SPI_CLOCK_DIV128);//divide the clock by 8
|
||||||
|
|
||||||
|
pinMode(MODE,OUTPUT);
|
||||||
|
pinMode(CONTROL,OUTPUT);
|
||||||
|
|
||||||
|
pinMode(RESET, OUTPUT);
|
||||||
|
|
||||||
|
digitalWrite(MODE, HIGH);
|
||||||
|
digitalWrite(CONTROL, HIGH);
|
||||||
|
|
||||||
|
|
||||||
|
digitalWrite(RESET, HIGH);
|
||||||
|
digitalWrite(SS, LOW);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop (void) {
|
||||||
|
byte addr = 0x0;
|
||||||
|
byte data;
|
||||||
|
|
||||||
|
SPI.beginTransaction(SPISettings(1000, MSBFIRST, SPI_MODE0));
|
||||||
|
// set speed bit format and clock/data polarity while starting SPI transaction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
digitalWrite(CONTROL, HIGH);
|
||||||
|
delay(5);
|
||||||
|
SPI.transfer(REG_WRITE_CTR); // Register Select
|
||||||
|
|
||||||
|
digitalWrite(CONTROL, LOW);
|
||||||
|
delay(5);
|
||||||
|
SPI.transfer(0x10); // read second 8 bits
|
||||||
|
delay(5);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// write the LTC CS pin low to initiate ADC sample and data transmit
|
||||||
|
digitalWrite(CONTROL, HIGH);
|
||||||
|
delay(5);
|
||||||
|
SPI.transfer(REG_READ_FLG); // Register Select
|
||||||
|
|
||||||
|
digitalWrite(CONTROL, LOW);
|
||||||
|
delay(5);
|
||||||
|
data = SPI.transfer(0x0); // read second 8 bits
|
||||||
|
Serial.println(data); //0x2
|
||||||
|
|
||||||
|
// wite LTC CS pin high to stop LTC from transmitting zeros.
|
||||||
|
SPI.endTransaction();
|
||||||
|
// close SPI transaction
|
||||||
|
|
||||||
|
delay(250);
|
||||||
|
// Delay that is fast but easy to read.
|
||||||
|
// delayMicroseconds(83);
|
||||||
|
// Delay that matches 12 khz delay time.
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user