Gast
#5050060
Hi, ich brauche dringend Hilfe! Ich muss zwei VL6180X Sensoren mit einem STM32F100RB verbinden. Die Kommunikation soll über den I2C Bus laufen. Die notwendigen Datenblätter-Seiten der I2C Kommunikation vom Microcontroller und Sensor sind angefügt. Für die Sensoren nochmal zusätzlich das ganze Datenblatt. Beide Sensoren sollen Gesten wahrnehmen und später eine Rechts- und eine Linksbewegung unterscheiden können. Dieses wird auf einem Display ausgegeben. Die Unterscheidung und die Displayausgabe traue ich mir später schon noch selber zu. Mit einem Display habe ich bereits gearbeitet. Jedoch scheitert es an der I2C Konfiguration. Ich habe leider noch nie vorher mit einem I2C Bus gearbeitet und bin ein bisschen überfordert. Könnt ihr mir da weiterhelfen? Auch würde ich gerne wissen, wie ihr die Sensoren abfragen würdet. a) Polling Mode b) Interrupt Mode Arbeitet der Microcontroller im Master oder im Slave Modus? Bei Polling ist das eindeutig, Master. Aber lässt sich mit Polling diese zwei Sensoren überhaupt auswerten? Schließlich frägt er beide hintereinander zyklisch ab und was ist, wenn in dem Moment meine Bewegung schon abgeschlossen ist oder der falsche Sensor zuerst "true" zurückliefert? Daher würde ich mit Interrupts arbeiten. Sobald einer von beiden Sensoren eine Bewegung wahrnimmt, wird einer von zwei möglichen Interrupts ausgelöst. Dieser wird mit einem Timer wieder verlassen. Falls vor Ablauf des Timers der zweite Sensor einen Signalwert bekommt, löst das dann eine Display-Ausgabe aus. So irgendwie von der Idee her. Oder würdet ihr anders vorgehen? Dennoch: die Konfiguration ist für mich erst einmal das Wichtigere. Was brauche ich alles? Und wie muss ich später mit den verschiedenen Registern arbeiten? Config? Control? Data-Register? Welche brauche ich einmalig, welche permanent, welche gar nicht. Ich blicke irgendwie nicht ganz so durch. Danke schon mal im Voraus!