Forum: Mikrocontroller und Digitale Elektronik AD7921 programmieren


von Moffo M. (Firma: HAWK Göttingen) (marcel2)


Angehängte Dateien:

Lesenswert?

Hallo,
 ich bin gerade dabei mit einem AD7921 eine analoge Spannung digital 
umwandeln zu lassen. Das Programm läuft fast gut aber mit einem kleinen 
Fehler.Der AD7921 hat zwei Kanäle wie es im Dattenblatt zu lesen ist:

http://www.analog.com/static/imported-files/data_sheets/AD7911_7921.pdf

mein Programm wandelt nur den Wert am ch0 um.ich weiß jetzt nicht wo das 
Problem liegen könnte.Ich habe mit Arduino Due programmiert.
mein Code sieht so aus:

#include <SPI.h>

int cs = 4;

void setup(){
  pinMode(cs, OUTPUT);                     // Pin cs (chip select) als 
Ausgang definiert
  digitalWrite(cs, HIGH);                  // cs auf 1 setzen
  SPI.begin();                             // Startet die SPI-Bibliothek
  SPI.setDataMode(SPI_MODE0);              // Setzt den SPI-Modus
  SPI.setClockDivider(cs,21);              // Stellt die Geschwindigkeit 
ein
  SPI.setBitOrder(MSBFIRST);               // Setzt die Bit-Reihenfolge 
Most-Significant-Bit, scheint Standart zu sein!!!
  Serial.begin(9600);
}

void loop()
{
  int adcWert0 = readAdc(0);
  int adcWert1 = readAdc(1);
  delay(1000);
 }

 int readAdc(int channel)
 {
   byte adcPrimaryByteMask=00101111;
   byte adcPrimaryRegister=channel<<5;
   digitalWrite(cs, LOW);
   byte adcPrimarybyte = SPI.transfer(adcPrimaryRegister);   // 
niederwertiges Byte zuerst, D15...D8
   byte adcSecondarybyte = SPI.transfer(0x00);               // 
höherwertiges Byte zum Schluss, D7...D0
   digitalWrite(cs, HIGH);
   adcPrimarybyte &= adcPrimaryByteMask;
   adcPrimarybyte = adcPrimarybyte << 8;
   int adcValue = adcPrimarybyte|adcSecondarybyte;
   return adcValue;
 }




hier(im Anhang) ist das vom Oszilloskop angezeigte Ergebnis.

Danke im Voraus.

von Ulrich F. (Gast)


Lesenswert?

[ot]
Ohhh .....
Ist dein Problem so schwerwiegend, dass du gleich mehrere Foren befragen 
musst....

Das habe ich ja gerade noch rechtzeitig gesehen, bevor ich dir das 
Datenblatt vorlesen wollte.
[/ot]

von Moffo M. (Firma: HAWK Göttingen) (marcel2)


Lesenswert?

Ich kann das Problem nicht erkennen. deswegen habe ich rumgefragt.

ich würde mich sehr freuen, wenn mir einer helfen könnte.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.