Hey, i am programming an external DAC 7612 with arduino DUE. I think there is something wrong in my Programm, but i dont know where. here is the datasheet of my DAC:
http://www.ti.com/lit/ds/symlink/dac7612.pdfhere is the Programm i wrote:
#include<SPI.h>
int dacChipselectPin = 8;
int load = 9;
void setup() {
pinMode(dacChipselectPin, OUTPUT);
pinMode(load, OUTPUT);
digitalWrite(load, LOW);
digitalWrite(dacChipselectPin, HIGH);
SPI.begin();
SPI.setDataMode(SPI_MODE3);
SPI.setClockDivider(dacChipselectPin,21);
SPI.setBitOrder(MSBFIRST);
Serial.begin(9600);
}
void loop(){
readDAc(2048,1);
delayMicroseconds(10);
}
int readDAc(int value,int channel){
int dacSecondaryMask = 0b0000000011111100;
byte dacPrimarybyte = (value>>6);
byte dacSecondarybyte = (value<<2)&dacSecondaryMask;
Serial.println(dacSecondarybyte);
switch(channel){
case 0: //A
dacPrimarybyte |=0b10000000;
break;
case 1: //B
dacPrimarybyte |=0b11000000;
break;
}
digitalWrite(load, HIGH);
delayMicroseconds(1);
digitalWrite(dacChipselectPin, LOW);
SPI.transfer(dacPrimarybyte);
SPI.transfer(dacSecondarybyte);
digitalWrite(dacChipselectPin,HIGH);
digitalWrite(load, LOW);
delayMicroseconds(100);
}
Please if someone has an idea, i will be pleased to be helped