Hallo, hat jemand vielleicht ein Beispeil für eine I2C Auslesung, die per DMA zyklisch rotierend passiert? Basierend auf den StdPeriph Libs! Ich würde gern einen Gyrosensor (kenne bisher nur den ADXL345) auslesen, der rund 20 Register hat. Denke mal die liest man einfach in einem Rutsch ein, ohne jedes neu zu adressieren und legt sie einem Array ab. Ich weiss nur noch nicht wie ich das triggern soll? Per Timer? Ideal wäre ein ununterbrochenes Auslesen des Chips. Falls jemand eine bessere Empfehlung für einen Gyro Chip hat, gern auch mit Kompass wäre das natürlich auch gut. Gruss, Christian
Du hast Dich ja noch nichtmal für einen konkreten Chip entschieden, und wir kennen Deine Anforderungen nicht. Außerdem haben die Dinger normalerweise einen konfigurierbaren "habe fertich" Pin. Dass Du das nicht aus dem Datenblatt auslesen konntest lässt dann doch tief blicken. Es gibt bei den Distributoren eine parametrische Suchfunktion, vielleicht haste die auch noch nicht gefunden...
Jim M. schrieb: > Du hast Dich ja noch nichtmal für einen konkreten Chip entschieden, und > wir kennen Deine Anforderungen nicht. Da du nicht der Sprechers des µCNets bist, solltest du ich schreiben statt wir. Der Rest deines Beitrags taugt auch nichts und ist ziemlich pöbelhaft.
Jim M. schrieb: > Du hast Dich ja noch nichtmal für einen konkreten Chip entschieden Schon mal den Betreff gelesen?
Christian J. schrieb: > Denke mal die liest man einfach in einem > Rutsch ein, ohne jedes neu zu adressieren und legt sie einem Array ab. Warum? Brauchst Du ständig alle 20 Werte neu? > Ich weiss nur noch nicht wie ich das triggern soll? Normal macht das der Sensor. Wenn die Werte bereit stehen bekommst Du einen Interupt und liest die Werte die Du brauchst. Warum willst Du ständig Werte einlesen, die sich nicht geändert haben? Christian J. schrieb: > Ideal wäre ein ununterbrochenes Auslesen des Chips. Nein, ideal ist ein Auslesen wenn der Chip neu gemessen hat. Wenn es dumm läuft sind die Werte zwischen den Messungen nicht gültig und Du bekommst nur Unsinn.
Horst schrieb: > Christian J. schrieb: >> Denke mal die liest man einfach in einem >> Rutsch ein, ohne jedes neu zu adressieren und legt sie einem Array ab. > Warum? Brauchst Du ständig alle 20 Werte neu? Hallo, ich möchte eine kleine Kopterplattform bauen, quasi nur EuroPlatine und 4 Motoren mit ESC dran. Für die PID Regler brauche ich alle Werte immer so schnell wie möglich, also maximale Rate so dass sie zur Berechnung zur Verfügung stehen. Den ADXL345 kenne ich sehr gut, den Mp6050 bisher nicht, der deutlich komplexer ist. >> Ich weiss nur noch nicht wie ich das triggern soll? > Normal macht das der Sensor. Wenn die Werte bereit stehen bekommst Du > einen Interupt und liest die Werte die Du brauchst. > Warum willst Du ständig Werte einlesen, die sich nicht geändert haben? Ok, also per FIFO Interrupt. > Christian J. schrieb: >> Ideal wäre ein ununterbrochenes Auslesen des Chips. > Nein, ideal ist ein Auslesen wenn der Chip neu gemessen hat. Wenn es > dumm läuft sind die Werte zwischen den Messungen nicht gültig und Du > bekommst nur Unsinn.
Hallo, ist es überhaupt möglich einen DMA Trigger per Pin-Change zu erzeugen? Ich finde da leider nicht drüber im Manual des F103. Würde jetzt erstmal den Umweg gegen den INT Pins des Sensors (Fifo full) auf einen Pin_Change INT der CPU zu verzweigen und in deren ISR den DMA Trigger manuell anstossen. Denn CPU Zeit will ich mit dem Auslesen was mit 400Hz passiert nicht verbraten. Hat da schonmal jemand was in der Richtugn gemacht? Christian
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.