Hardware Anschluss mit C++ ansprechen

Hallo,

Ich weiss zwar nicht obs hier rein gehört, aber da es zum Teil um C++ geht schreib ich es mal hier. Also ich brauche ein Programm das die Zeit zwischen 2 Stromflüssen misst. Es dreht sich eine Scheibe bei dem Gerät und bei einer bestimmten Stelle ist der Stromkreis geschlossen und ich will die Zeit dazwischen. So jetzt die Frage. Welchen Anschluss benutze ich da am besten und wie sprech ich den mit C++ am besten an? Timer hab ich den aus der WinAPI, ist der dafür geeignet?

Gruß Michael

Hallo,

Es dreht sich eine Scheibe bei dem Gerät […] und ich
will die Zeit dazwischen.

Kannst Du das mal verständlich erklären? Die Zeit zwischen was willst Du messen?

So jetzt die Frage. Welchen Anschluss benutze ich
da am besten und wie sprech ich den mit C++ am besten an?

Um welche Größenordnung geht es denn? Tage? Stunden? Sekunden? Nanosekunden?

Gruß

Fritze

Hallo,

Es dreht sich eine Scheibe bei dem Gerät […] und ich
will die Zeit dazwischen.

Kannst Du das mal verständlich erklären? Die Zeit zwischen was
willst Du messen?

Die Zeit die die Scheibe für eine Umdrehung braucht. Diese Zeit soll dann umgerechnet werden damit ich die KM/h habe.

So jetzt die Frage. Welchen Anschluss benutze ich
da am besten und wie sprech ich den mit C++ am besten an?

Um welche Größenordnung geht es denn? Tage? Stunden? Sekunden?
Nanosekunden?

Gruß

Fritze

Um Millisekunden, bis Sekunden. Soll ein Geschwindigkeitsmesser werden.

Gruß Michael

Um Millisekunden, bis Sekunden. Soll ein
Geschwindigkeitsmesser werden.

Hallo Michael,

Empfehlung: ein kleines Mikroprozessorsystemchen, das die Frequenz selbsständig misst und über USB an den PC meldet. Gibts als Development Tool in Form eines USB-Sticks, z.B. eZ430-F2013 von TI.

Diskussionen darüber, dass man mit dem PC keine genaue Zeit messen kann, weil nicht echtzeitfähig, gibt es im Internet zu Tausenden. Bitte nicht nochmal!

Gruss Reinhard

Hallo,

Es soll ja nicht so genau werden, bloss die Messung hätte schnell von statten gehen sollen, da ich damit die Geschwindigkeit messen will und sehen wie sie abnimmt, aber wahrscheinlicht ist das mit den Mikroprozessorsystemchen besser.
Danke
Gruß Michael

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Michael,

Es soll ja nicht so genau werden, bloss die Messung hätte
schnell von statten gehen sollen, da ich damit die
Geschwindigkeit messen will und sehen wie sie abnimmt, aber
wahrscheinlicht ist das mit den Mikroprozessorsystemchen
besser.

Du musst damit rechnen, dass Windows schon mal ein paar Sekunden Denkpause einlegt, weil es z.B. den Speicher mit der Auslagerungsdatei umschichtet …

Die einzige Möglichkeit wäre, deinen Impuls einem Hardware-Interrupt zuzuordnen.

Das bedingt dann aber zuerst einmal passende Hardware.
Das nächste Problem wäre dann, dass du einen passenden Treiber schreiben musst. Ist aber ein grosser Aufwand sich in die Treiberprogrammierung einzulesen.

Einen Möglichkeit wäre noch, USB-I/O-Module zu verwenden. Da gibt es welche die Frequenzen, bzw. Impulsweiten, messen können.

MfG Peter(TOO)

Hallo,

Es soll ja nicht so genau werden, bloss die Messung hätte
schnell von statten gehen sollen, da ich damit die
Geschwindigkeit messen will und sehen wie sie abnimmt, aber
wahrscheinlicht ist das mit den Mikroprozessorsystemchen
besser.

Wieviele Umdrehungen pro Sekunde macht die Scheibe denn? Ohne externe Hardware wirst Du natürlich nicht auskommen. Bei hinreichend vielen Umdrehungen könnte mah einfach in festen Intervallen die Durchgänge zählen (also brauchst Du nur einen Zähler auslesen). Dann kannst Du die Geschwindigkeit relativ einfach ermitteln.

Besser als Polling wäre natürlich ein Interrupt über den Zähler.

Wie hast Du Dir das denn vorgestellt?

Gruß

Fritze

Naja es sind schon einige Umdrehungen, werden so um die 35 km/h sein. Die Scheibe ist ungefähr so gross wie ne CD. Werd mir eine passende Hardware kaufen wie hier auch schon empfohlen wurde.

Gruß Michael

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]