ADXL 345, ALLE Datensätze auslesen!?

OP #2555010
Hallo

Ich habe schon viel hilfreiches hier im forum über den ADXL345 erfahren 
und umgesetzt.
Nun bräcuhte ich aber bitte eure hilfe!
Ich würde gerne bei einer Messrate von zb. 400Hz JEDEN Datesatz mit dem 
uC auslesen
 und in dann an den PC senden.

deshalb dachte ich mir, dass der DATA_READY INT dafür am besten geeignet 
sei.
dazu hab ich folgendes Programm  geschrieben(gekürzt):

ISR(INT1_vect){                //Interrupt an dem der Data_Ready Int des 
ADXL hängt
  regi=178;
  for(char i=0;i<3;i++)
  {
  MultipleReadByteSPI(regi, &dataFirst, &dataSecond);     //Beide 
Datensätze einer achse werden ausgelesen und gespeichert
    if(dataSecond & 128)          // wenn der wert negativ sein sollte
    {
      daten=(dataSecond<<5) | (dataFirst>>3) | 128;   // 
zusammenschieben der 2Byte auf 1 byte + 128 für vorzeichen
    }
    else
    {
      daten=(dataSecond<<5) | (dataFirst>>3);    // zusammenschieben der 
2Byte auf 1 byte
    }
    if(regi==178) Xwerte[counter]=daten;
    if(regi==180) Ywerte[counter]=daten;
    if(regi==182) Zwerte[counter]=daten;
    regi = regi+2;
  }
counter++;
}

Bitte zerrauft euch jetzt nicht die HAARE an meinem Bits verscheiben! 
mir geht es darum, dass der Data_Ready Int (mit dem Oszi beobachtet)
WEIT langsamer kommt als mit 400 Hz!!! Selbst wenn ich die Messrate 
runter schraube ist der Interrupt langsamer als die Messrate
WARUM ist das so?
gibt es für mein vorhaben vl. einfachere wege?

ATMEGA 644P, 16MHz, SPI-Cklock: 1 MHz

Sorry falls das schon einmal wo behandelt wurde!

LG Robert
Robert R. schrieb:
> Hallo
>
> Ich habe schon viel hilfreiches hier im forum über den ADXL345 erfahren
> und umgesetzt.
> Nun bräcuhte ich aber bitte eure hilfe!
> Ich würde gerne bei einer Messrate von zb. 400Hz JEDEN Datesatz mit dem
> uC auslesen
>  und in dann an den PC senden.


Hallo Robert,

falls du immer noch an adxl hängst...
ich würde dir empfhlen anstatt DATA_READY, den Water-mark interrupt, mit 
FIFO_CTRL Rigister zu benutzen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.