Gast
#207392
Hallo habe mal eine Frage zum DAC 5156 (12 Bit DAC). Wie kann ich hier
die Max- und Min-Spannung einstellen. Habe mal folgendes gefunden, weis
aber nicht ob das so stimmt. Die Daten sende ich per SPI mit Hilfe eines
Atmega32.
void SendSPIData(unsigned int spi_data)
{
SPCR = 0xD2; //Schnell für DAC Teiler (fosc / 16 = 1 Mhz)
delay_us(10);
spiROk = 0;
SPDR = ((spi_data & 0xFF00)>>8); //8Höherwertige Bit über SPI senden
while (spiROk ==0);//spiRok = 1 wenn übertragung abgeschlossen
spiROk = 0;
SPDR = (spi_data & 0x00FF); //8 Niederwertige Bit über SPI senden
while (spiROk ==0); //spiRok = 1 wenn übertragung abgeschlossen
delay_us(10);
delay_us(10);
}
void SetDAC(unsigned char channel, unsigned int voltage)
{
unsigned int x = 0;
unsigned int spannung0;
unsigned int spannung1;
if (channel==1)
{
spannung1 = voltage; //***********für was wird das benötigt
voltage = (voltage / 7.25);
voltage = (voltage & 0x0FFF);
x = 0x8000; //Channel Bit A0 setzen
x = (x | 0x4000); //Input Registers(DAC) load and update
x = (x | (voltage<<1));
SendSPIData(x);
}
if (channel==0)
{
spannung0 = voltage;
voltage = (voltage / 7.25);
voltage = (voltage & 0x0FFF);
x = 0x4000; //Input Registers(DAC) load and update
x = (x | (voltage<<1));
SendSPIData(x);
}
}
Jetzt möchte ich den DAC setzen, stimmt das so:
SetDAC(0,Oberwert_0);
SetDAC(1,Unterwert_0);
printf("Spannungen sind gesetzt?");