Hi, lese per SPI Beschleunigungs-Sensordaten aus, welche ich dann per UART rausschicke, beides Polling basiert, also keine ISR. Funktioniert wunderbar ohne Probleme. Jetzt wollt ich mal das wake up feature hinzufügen und der INT2 Pin vom Sensor liefert mir keinen high Pegel um dem µC zu sagen, dass es losgehn kann. Hier die Application note auf S.35, 9.5 Inertial wake up: http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/CD00229883.pdf Mein Beispiel ist auf wake up durch treshold an z-Achse und auf +-8g konfiguriert. Deshalb weichen bei Punkt 1 und 6 die zu schreibenden Registerinhalte vom Beispiel ab. Hier ist der Code Ausschnitt um den es sich handelt. Die Funktionen wurden schon geprüft, sodass der Fehler eigentlich nur beim Algorithmus liegen kann.
Dein erster Denkfehler ist schonmal davon auszugehen das jeder deine Denkweise versteht.. 1. µc ? 2. Compiler 3. Genauere erklärung was du machst, was du vor hast. Satzfetzen die etwas andeuten bringt niemandem was. Das Problem genau beschreiben dann kann dir bestimmt wer helfen
Kristijan M. schrieb: > 1. µc ? > 2. Compiler > 3. Genauere erklärung was du machst, was du vor hast. 1. ATmega 328P 2. AVR Studio 5 3. Ich möchte dass mein Beschleunigungsensor ab einer gewissen threshold welche ich auf 720mg konfiguriert habe, einen high Pegel an seinem INT2 Pin liefert. D.h. sobald ein high Pegel am INT2 pin vom Sensor anliegt, soll der Sensor ausgelesen werden. Leider kommt kein high Pegel am INT2 Pin. Hab sogar mit Oszi nachgemessen. Ohne den High Pegel am INT2, wird die while-Schleife unter Punkt 7. nie verlassen.
Man kann doch theoretisch das wake up feature des Sensors auch ohne µC-sleep-modes verwenden, auch wenn es eigentlich nicht sinnvoll?
Ich möchte Schrittweise vorgehn und erst wenn das Sensor wake up feature läuft mich um den passenden sleep-mode des µC kümmern.
Wenn der Sensor auf den Wert vorprogrammiert ist und er kein High-Signal ausgiebt würde ich mir mal die Konfiguration des Sensors nochmal genau anschauen... Pull-up´s/down´s oder richtige Adresse gesetzt ? Floating pins ?
Danke Kristijan. Es klappt jetzt. Hab den Pin falsch abgefragt. Anstatt PORTC muss es PINC heißen. Leider ist die Performance erheblich runtergegangen im Vergleich zu meinem alten Programm ohne wake up.
Hab jetzt folgendes Problem: Wenn der Sensor nicht mehr angeregt wird gibt es ne ungewollte Nachlaufzeit. Hatte mal ein Amperemeter an der Zuleitung der Gesamtschaltung und konnte dann immer sehn wenn der Sensor aufwacht und dann eben wieder schlafen geht. Hatte dann versucht am PINC4 vom µC welcher den INT2 pin vom Sensor pollt einen Pulldown Widerstand anzuschließen um die Nachlaufzeit zu unterbinden. Dadurch wacht der Sensor nicht mehr auf. Der zieht leider den INT2 Pin anscheinend so sehr auf Masse, sodass er nicht mehr aufwacht. Dies ist das erste mal, dass ich mit Pins einlese bzw. events abarbeite. Jemand eine Idee?
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.