/*
LTC 1286 : http://cds.linear.com/docs/en/datasheet/128698fs.pdf
 Compatible SPI : http://arduino.cc/en/Reference/SPI
 ** MOSI = non utilisé - pin 11
 ** MISO = Dout - pin 12 déclaré dans la bibliothèque standard
 ** SCK = CLK - pin 13
 ** CS - pin 10 	 
 */
#include <SPI.h>

const int CS = 10;
// const int MISO = 12;   // Inutile : déjà déclaré dans la bibliothèque standard
// const int SCK = 13;
byte N1,N2;
int i,k,N;
float Vin,q=0.001194;


void setup()
{
  Serial.begin(9600);
  Serial.println("Mesure \tN \tV en V");
  pinMode(CS, OUTPUT);
  digitalWrite(CS,1);
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV128);     // Horloge à 16000/128 = 125 kHz
  //SPI.setBitOrder(MSBFIRST);
  //SPI.setDataMode(SPI_MODE0);   
}

void loop()
{
  digitalWrite(CS,0);
  N1=SPI.transfer(0x00)<<3;   // Mot 1 (MSB) : 2 bits à haute impédance + un bit nul reste 5 bits significatifs
  N2=SPI.transfer(0x00)>>1;   // Mot 2 (LSB) : 7 bits significatifs, le dernier bit à éliminer (haute impédance)
  N=16*N1+N2;              // Mot 1 : MSB en 2^7 =>  2^7*2^4=2^11  => il faut multiplier N1 par 16
  digitalWrite(CS,1);
  Vin = q*N;
  k++;
  Serial.print(k);Serial.print("\t");
  Serial.print(N);Serial.print("\t");
  Serial.println(Vin,3); 
  delay(500);  
}