• Der von Ihnen gemessene Jitter setzt sich aus vier Komponenten zusammen:
    A: Verzögerung zwischen Anlegen des IRQ und Aufruf des Interrupt-Handlers
    Entsteht dadurch, dass BUS belegt ist oder Interrupts gesperrt sind
    B: Verzögerung innerhalb des Scedulers, d.h. Triggerung des Interrupt-Threads
    Ihr Programm läuft zwar auf Prio 0 gibt jedoch die CPU durch WaitForSingleObject ab.
    D.h. unter Umständen findet ein Process-Switrch statt oder ein anderer Thread führt eine Aktion
    aus die nicht unterbrochen werden kann.
    C: Verzögerung beim Toggeln des Pin's durch Aufruf des DIO Treibers
    Bei Aufruf des DIO Treibers muss device.exe geladen werden
    D: Verzögerung durch CPU bis Pin getoggelt wird (-> Pipeline)


    Nach unseren Messung kommt ein Großteil der Verzögerung durch das Toggeln des DIO Ports. D.h. die Zeit vom Anlegen des IRQ bis Ihr Thread gestartet wird ist sicherlich kleiner 5 us. Der Jitter lässt sich nur reduzieren in dem weniger Threads laufen. Dies kann erreicht werden durch Abschalten aller nicht benötigter Treiber. Insbesondere USB, Audio u.s.w.. Ansonsten würde ich für eine zeitkritische Anwendung immer einen externen Controller verwenden.


    Grüße
    Holger Frölich

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hallo,
    ich habe heute die vorangegangenen Beiträge zum Thema Interrupt gelesen. Leider ist mir immer noch unklar, welche I/Os interrupt-fähig sind.
    Herr Keller schrieb: "Benutzen Sie einfach einen der GPIOs. Für die GPIO-Pins gibt es Routinen zur Behandlung von Interrupts."
    In einem anderen Beitrag über Interrupts wird auf DeviceDriver.pdf Version 1.01 Date: 2007-04-27 verwiesen - demnach sind nur
    die I/Os 9 (im Starterkit GPIO5/EXTINT) / 10 /24 / 25 interrupt-fähig, weil in diesem Dokument für sie eine IRQCfg angegeben ist.
    Mich würde interessieren, ob die I/Os 14 - 17 (im Starterkit GPIO1-4) interrupt-fähig sind.


    Schöne Grüße & vielen Dank im voraus.