#define DA_SCK 13
#define DA_SDI 11
#define DA_CS 10
#define DA_LDAC 9
void DACout(int dataPin,int clockPin,int destination,int value)
{
int i ;
digitalWrite(dataPin,destination) ;
digitalWrite(clockPin,HIGH) ;
digitalWrite(clockPin,LOW) ;
digitalWrite(dataPin,LOW) ;
digitalWrite(clockPin,HIGH) ;
digitalWrite(clockPin,LOW) ;
digitalWrite(dataPin,HIGH) ;
digitalWrite(clockPin,HIGH) ;
digitalWrite(clockPin,LOW) ;
digitalWrite(dataPin,HIGH) ;
digitalWrite(clockPin,HIGH) ;
digitalWrite(clockPin,LOW) ;
for (i=11 ; i>=0 ; i--) {
if (((value >> i) & 0x1) == 1) digitalWrite(dataPin,HIGH) ;
else digitalWrite(dataPin,LOW) ;
digitalWrite(clockPin,HIGH) ;
digitalWrite(clockPin,LOW) ;
}
}
void setup() {
pinMode(DA_SCK, OUTPUT) ;
pinMode(DA_SDI, OUTPUT) ;
pinMode(DA_CS, OUTPUT) ;
pinMode(DA_LDAC,OUTPUT) ;
digitalWrite(DA_SCK,LOW) ;
}
void loop() {
int i=0;
for(i=0; i<4096; i++){
digitalWrite(DA_LDAC,HIGH) ;
digitalWrite(DA_CS,LOW) ;
DACout(DA_SDI,DA_SCK,0,i) ;
digitalWrite(DA_CS,HIGH) ;
digitalWrite(DA_LDAC,LOW) ;
}
}
|