Handle | Handle zur eindeutigen Identifizierung des Geräts |
NumOfEvents | Zeiger auf eine int-Variable, in der zurückgeliefert wird, wieviele Ereignisse seit dem letzten Aufruf der Funktion aufgetreten sind. Die Minilumax-Karte bietet Platz für maximal 16 Ereignisse. Sollten mehr Ereignisse aufgetreten sein, werden im Event-Puffer nur die letzten (neuesten) 16 Ereignisse gespeichert. |
Buffer | Zeiger auf einen Puffer, in dem die gemessenen Input-Capture-Events zurückgeliefert werden. Als Ergebnis wird die Nummer des Punktes innerhalb des Frames zurückgeliefert, bei der das Ereignas stattgefunden hat. Zusätzlich wird für jedes Ereignis der Pegel des Input Capture Eingangs zurückgeliefert. Die Nummer des Punktes ist eine 16-Bit-Zahl im Bereich 0-65535 (der erste Punkt im Frame hat die Nummer 0). Aufbau des Puffers: Für jedes Event werden 3 Byte benötigt: Byte 1: HIGH-Byte der Punkt-Nummer Byte 2: LOW-Byte der Punkt-Nummer Byte 3: In Bit 0 steht der neue Pegel des Input-Capture-Eingangs Der Puffer muss also eine Größe von mindestens 16 * 3 = 48 Byte haben. Innerhalb des Puffers steht das neueste (zuletzt aufgetretene) Event an erster Stelle, dann folgen die immer älteren Ereignisse. Hinweis: Bei jedem Aufruf der Funktion Lumax_GetInputCapture wird eine Input-Capture-Messung erzwungen. Das heisst, selbst wenn kein Ereignis seit dem letzten Aufruf von Lumax_GetInputCapture stattgefunden hat, ist NumOfEvents = 1. Das erste Ereignis im Puffer ist also immer der Zeitpunkt des Aufrufs von Lumax_GetInputCapture und der momentan anliegende Logikpegel am Eingangspin. Auf diese Weise lässt sich der Pegel abfragen, auch ohne dass Ereignisse aufgetreten sind. Im Anschluss folgen bis zu 15 gemessene Input-Capture-Events. Beispiel: Der Aufruf von Lumax_GetInputCapture liefert folgendes Ergebnis: NumOfEvents: 5 Buffer (zerlegt in einzelne Bytes): 1, 117, 0, 1, 42, 0, 0, 206, 1, 0, 39, 0, 3, 185, 1 Zu jedem Event gehören 3 Byte, im Falle des ersten Events also die Bytes 1, 117 und 0. 1 ist das HIGH-Byte, 117 das LOW-Byte des Punkte-Zählers. 1*256 + 117 = 373 Wie oben beschrieben ist das erste Ereignis immer der Zeitpunkts des Aufrufs von Lumax_GetInputCapture. Das heisst also, die Funktion wurde bei Punkt 373 des aktuell ausgegebenen Frames aufgerufen, und der Pegel des Eingangspins war zu dieser Zeit 0. Das vorherige Ereignis trat bei Punkt (1*256+42)=298 auf. Hier wechselte der Pegel von 1 auf 0. Das wiederum vorherige Ereignis trat bei Punkt (0*256+206)=206 auf. Hier wechselte der Pegel von 0 auf 1. Das wiederum vorherige Ereignis trat bei Punkt (0*256+39)=39 auf. Hier wechselte der Pegel von 1 auf 0. Das wiederum vorherige Ereignis trat bei Punkt (3*256+185)=953 auf. Hier wechselte der Pegel von 0 auf 1. Dieses letzte, am weitesten zurückliegende Ereignis gehört nicht mehr zum aktuellen, sondern zum vorherigen Frame, wie an der Folge der Punktnummern zu erkennen ist (373, 298, 206, 39, 953) |