Geeignete .c Bibliothek für ICM 20948 Bewegungssensor

OP #6293434
Lesenswert?
• ▲
▼
Hallo zusammen,

ich habe hier ein dev Board mit einem ICM20948 
(https://shop.pimoroni.com/products/icm20948) und möchte nun 
Bewegungsdaten über I2C mit einem nRF52833 DK von Nordic 
(https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF52833-DK) 
auslesen.

Im Vorfeld habe ich über einen I2C Scanner aus dem Nordic SDK 
sichergestellt, dass der ICM20948 erreichbar ist. Die I2C Verbindung 
steht also. Weiterhin gibt es in dem Nordic SDK Beispiele, die das 
lesen/schreiben über I2C (bzw TWI bei Nordic) veranschaulichen.

Informationen zu den Registern des Sensors findet man im Datehnblatt:
https://invensense.tdk.com/wp-content/uploads/2016/06/DS-000189-ICM-20948-v1.3.pdf

Meine Frage: Welche Bibliothek würdet ihr empfehlen, um mit diesem 
Sensor zu arbeiten? Es gibt unzählige, verschiedene auf Github, ich 
blicke da nicht wirklich durch. Ich arbeite mit der Segger IDE sowie 
größtenteils mit den Beispielen aus dem Nordic SDK.

Im Nordic Forum wurde diese Bibliothek empfohlen:

https://github.com/IOsonata/IOsonata/blob/master/src/sensors/agm_invn_icm20948.cpp

Meine Bibliotheken bestehen derzeit allerdings lediglich aus .c Files, 
weswegen ich nicht weiß ob ich die Bibliothek überhaupt nutzen kann. 
Weiterhin werden in dieser Datei sehr viele Header Dateien aufgerufen, 
die allerdings nicht in dem Verzeichnis vorhanden sind, die ich aber 
brauche. Wo kriege ich die her?

Auf der Seite des Herstellers habe ich auch nix brauchbares gefunden. 
Wie würdet ihr Vorgehen?

Danke und Gruß

Simon
OP #6293534
Lesenswert?
• ▲
▼
Arduino Fanboy D. schrieb:
> Mich würde mal interessieren, warum du nicht von C auf C++
> umschwenkst.
> Irgendwelche Nachteile kann ich da nicht erkennen.

Ich war nicht sicher, ob der Compiler meckert, wenn ich eine C++ 
Bibliothek nehme.

Simon K. schrieb:
> Weiterhin werden in dieser Datei sehr viele Header Dateien aufgerufen,
> die allerdings nicht in dem Verzeichnis vorhanden sind, die ich aber
> brauche. Wo kriege ich die her?

Kannst du dazu noch was sagen? Ist es normal, das in Github Bibliotheken 
veröffentlich werden, ohne die ganzen inkludierten (gibts das Wort?) 
Header Dateien?
Gast #6293574
Lesenswert?
• ▲
▼
Simon K. schrieb:
> Ich war nicht sicher, ob der Compiler meckert, wenn ich eine C++
> Bibliothek nehme.
Natürlich wird ein C Compiler keinen C++ Code fressen!
Zumindest nicht, wenn dort die C++ Features genutzt werden.
Umgekehrt sieht das schon ganz anders aus.
Wenn man die C Extrawürste weg lässt, dann nimmt ein C++ Compiler auch 
recht gerne für C geschriebenen Code.

In ein *.cpp Hauptprogramm übersetze *.c Dateien/Libraries 
einzubinden(linken) ist kein Problem.

Ich vermute, zu deiner C Toolchain, gehört auch ein C++ Compiler.

Simon K. schrieb:
> Kannst du dazu noch was sagen? Ist es normal, das in Github Bibliotheken
> veröffentlich werden, ohne die ganzen inkludierten (gibts das Wort?)
> Header Dateien?

Fremde Anteile, DARF man nicht als eigene publizieren.
Dann findet sich in der Doku ein Verweis.
Auf der Eingangsseite des Github Dingen, findet sich ein Hinweis, wo du 
dir den Kram absammeln kannst.

Aber dass die entsprechenden Hinweise überlesen werden, dass ist schon 
eher normal.


Auszug:
ICM-20948 Motion_Driver : Create a user at 
https://invensense.tdk.com/developers/software-downloads/. In the 
"Development Kits" block, download "DK-20948 SmartMotion eMD 1.1.0". 
Unzip the downloaded file and navigate to EMD-Core/sources. Copy the 
folder Invn to external/Invn as indicated in the folder tree bellow.
OP #6293911
Lesenswert?
• ▲
▼
Arduino Fanboy D. schrieb:
> Auszug:
> ICM-20948 Motion_Driver : Create a user at
> https://invensense.tdk.com/developers/software-downloads/. In the
> "Development Kits" block, download "DK-20948 SmartMotion eMD 1.1.0".
> Unzip the downloaded file and navigate to EMD-Core/sources. Copy the
> folder Invn to external/Invn as indicated in the folder tree bellow.

Danke! Ich habe nun alle Dateien entsprechend in die Ablage kopiert. 
Leider bekomme ich noch einen Fehler beim Kompilieren (s. Screenshot). 
Im Projekt sind u.a. "nRF_atomic.c/h" Dateien vorhanden, nicht aber das 
was ihm da noch fehlt. Weiß jemand wodran das noch liegt?

Danke und Gruß

Simon
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.