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