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?
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!
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]
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.
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.
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]