Externe Stoppuhr



  • Hi,

    ich hab da mal ne Frage ;-)! Ich möchte gerne eine externe Stoppuhr bauen, soll heißen an einem Port werden zwei Stromkreise angeschlossen. Wenn der erste Stromkreis geschlossen wird, soll der PC anfang zu stoppen und wenn der zweite Stromkreis geschlossen wird, soll die Messung beendet werden. Mit der Stoppuhr an sich habe ich kein Problem, aber mit dem externen Kontakten.
    Bitte helft mir!

    JaFu



  • such Dir zwei PINs an der CPU, bau da jeweils einen Draht ran und bete *fg*

    Also mal im Ernst. ich würde einfach die parallele Schnittstelle überprüfen. da musst du nur die stati abfragen und dann darauf reagieren..



  • das mit den Drähten habe ich mir schon gedacht ...
    Mein Problem ist die Überprüfung! Bitte helft mir ich habe nämlich keine Ahnung!

    JaFu



  • Hi,

    kannst das auch mit der seriellen Schnittstelle realisieren.
    http://www.inigraphics.net/ini-sc/mswin/awfcsem/kap11.htm
    Ich hab's noch nicht versucht, aber vielleicht hilft's dir.

    mfg

    [ Dieser Beitrag wurde am 05.12.2002 um 20:10 Uhr von mirkos editiert. ]



  • Wenn mich nicht alles irrt, ist in diesem Beitrag nur beschrieben wie man Daten sendet und empfängt! Ich sende/empfange aber keine Daten!

    thx
    Jan



  • Hallo

    Ich wurde es auch über die Serielle Schnittstelle machen.

    1. Signalpegel +- 10 Volt (Unempfindlicher)
    2. Interuptfähig (ohne Pollig schnelle Reaktion nötig)

    Ich würde das Signal DTR/DSR und RTS/CTS verwenden.

    Für Tests kannst du nachfolgende Kompnente laden (COM-Port-Komponente)

    http://www.winsoft.sk/comport.htm

    Tip: Verwende das Ereignis "OnCTSChange" z.b. für das Starten der Uhr
    "OnDSRChange" z.b. für das Stoppen

    Hört sich kompliziert an, ist es aber nicht. Bei bedarf sende ich dir einen kurzen Code (BCB 6)

    Viel Glück

    Karl



  • Hi,

    bei mir dauert es immer etwas länger, bis ich etwas verstehe 😉 , also:
    Du meinst ich soll DTR & DSR in ein Stromkreis mit dem Kontakt setzen. Und dann die OnDSRCahnge aufrufen, was gibt der für ein Wert zurück?

    thx
    Jan

    PS: Is schon alles schwierig! 😉



  • Hallo

    Fast 😉

    Also die "Kontakte" CTS, DSR und RLSD sind quasi Eingänge !

    Du setzt das Signal RTS auf "1", dann hast du eine Spannung.

    Setzen den einen Kontakt zwischen RTS und CTS, den anderen zwischen RTS und DSR.

    Beim schliesen des Kontaktes wird das Ereignis CTS... oder DSR.... aufgerufen.

    Beim Ereignis CTS fragt du die Systemzeit ab un merkst sie dir in einer globalen
    Variablen. Bein DTS wird die Systemzeit erneut abgefragt und mit der "ersten" Zeit subtrahiert. (Zeit von Start bis Stop)

    Karl



  • Komisch bei mir geht das net wirklich mit "OnDSRChange", kennt er net (bitte net hauen aber ich bin Newbie ;-)). Es wäre nett wenn du mir ein Codeauszug mailst/postest!

    thx
    Jan



  • Original erstellt von JaFu:
    Komisch bei mir geht das net wirklich mit "OnDSRChange", kennt er net (bitte net hauen aber ich bin Newbie ;-)).

    Es war vorher von einer Komponente die Rede!



  • Hallo Jafu

    Ein paar fragen vorab.

    - Welchen Compiler hast du (Version)
    - Hast du die Componente TComPort Installiert und findest du sie unter
    "System" --> ComPort ?
    - Erzeuge eine neue Anwendung
    - Lege die Componente ins neue Formular
    - Seletiere die TComPort und suche im Objekt-Inspektor unter Ereignisse
    "OnCTSChange". Rechts davon mache einen Doppelclick und du erzeugst damit
    "ComPortCTSChange".
    - Schreibe deinen Code in diese Funktion
    - Für "DSR" das gleiche
    - Beide Componenten werden aufgerufen sobald eine Änderung der "Pegel" stattfinden

    Karl



  • Naja, jetzt geht's! War wohl net richtig installiert!

    thx @all

    Jan



  • Hallo JaFu

    Kleiner Tip !

    Wenn du einen "normalen" Kontakt verwendest, so wird diese Funktion öfter
    aufgerufen. (Kontaktprellen)

    Stelle sicher daß bein ersten Aufruf du dir das in einer Variable merkst
    und gegebenenfalls die "Zeit" nicht neu auslest.
    (Können sonst schon ein paar xx milisekunden sein, sowohl beim "Start" als
    auch beim Stop)

    Karl



  • Danke für den Tipp!

    Jan


Anmelden zum Antworten