21.05.2014, 09:59
Hallo zusammen,
ich habe eine Frage aus dem Bereich I2C (falls die Kategorie falsch ist, bitte um Verschiebung; diese schien mir am sinnvollsten).
Ich verwende einen myRIO um mittels der am MXP Connector A vorhandenen I2C Schnittstelle eine IMU auszulesen (http://www.watterott.com/de/MinIMU-9-v3).
Hardware Anschluss funktioniert und mittels des Accelerometer-Beispiel aus dem Project Essentials Guide zum myRIO [url=(http://www.ni.com/academic/myrio/project...-guide.pdf[/url], http://www.ni.com/academic/myrio/project-guide-vis.zip) habe ich auch eine Software entwickelt.
Problem:
Wenn ich die 6 Bytes für die High und Low-Werte auslesen will mittels myRIO I2C WriteRead.vi, würde ich nach dem oben erwähnten Beispiel die Adresse des ersten Bytes (in diesem Fall 28) schreiben und dann 6 Bytes lesen. Leider liest mein Code dann 6x das erste Byte. Lass ich das WriteRead.vi in einer For-Schleife laufen und erhöhe die Adresse und lesen nur jeweils ein Byte, dann funktioniert es einwandfrei.
Die angehängte Datei "Acc_Example.vi" zeigt die Beispiel-Implementierung mittels "Erstes byte schreiben, alle 6 lesen".
[attachment=49787]
Das Bild "Acc_Example.png" zeigt den entscheidenden Abschnitt.
[attachment=49789]
Die angehängte Datei "IMU-I2C-ReadIn.vi" zeigt meine Implementierung mittels For-Loop.
[attachment=49788]
Das Bild "IMU-I2C-ReadIn.png" zeigt den entscheidenden Abschnitt.
[attachment=49790]
Hat jemand eine Idee, wieso die erste Implementierung bei dieser IMU nicht funktioniert??
Vielen Dank für jede Idee!
Grüße
Niels Göran
P.S.: Hier wird ebenfalls der Ansatz aus dem Beispiel als Lösung diskutiert...
ich habe eine Frage aus dem Bereich I2C (falls die Kategorie falsch ist, bitte um Verschiebung; diese schien mir am sinnvollsten).
Ich verwende einen myRIO um mittels der am MXP Connector A vorhandenen I2C Schnittstelle eine IMU auszulesen (http://www.watterott.com/de/MinIMU-9-v3).
Hardware Anschluss funktioniert und mittels des Accelerometer-Beispiel aus dem Project Essentials Guide zum myRIO [url=(http://www.ni.com/academic/myrio/project...-guide.pdf[/url], http://www.ni.com/academic/myrio/project-guide-vis.zip) habe ich auch eine Software entwickelt.
Problem:
Wenn ich die 6 Bytes für die High und Low-Werte auslesen will mittels myRIO I2C WriteRead.vi, würde ich nach dem oben erwähnten Beispiel die Adresse des ersten Bytes (in diesem Fall 28) schreiben und dann 6 Bytes lesen. Leider liest mein Code dann 6x das erste Byte. Lass ich das WriteRead.vi in einer For-Schleife laufen und erhöhe die Adresse und lesen nur jeweils ein Byte, dann funktioniert es einwandfrei.
Die angehängte Datei "Acc_Example.vi" zeigt die Beispiel-Implementierung mittels "Erstes byte schreiben, alle 6 lesen".
[attachment=49787]
Das Bild "Acc_Example.png" zeigt den entscheidenden Abschnitt.
[attachment=49789]
Die angehängte Datei "IMU-I2C-ReadIn.vi" zeigt meine Implementierung mittels For-Loop.
[attachment=49788]
Das Bild "IMU-I2C-ReadIn.png" zeigt den entscheidenden Abschnitt.
[attachment=49790]
Hat jemand eine Idee, wieso die erste Implementierung bei dieser IMU nicht funktioniert??
Vielen Dank für jede Idee!
Grüße
Niels Göran
P.S.: Hier wird ebenfalls der Ansatz aus dem Beispiel als Lösung diskutiert...