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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.