Hallo, es geht wieder mal um die USB-Relaiskarte. Damit habe ich nun eine Zeit lang experimentiert. Etwas problematisch war die Benutzung der Eingänge. Mit einem VB-Programm wurden die Eingänge auf Zustandsänderung überwacht. Da der Zustand ständig gesendet wird, steigt die CPU-Auslastung stark an (Pentium 4 mit 2,8 GHz --> Auslastung 30%) .
Daher habe ich eine winzige Änderung an der Firmware vorgenommen. Die Prüfung, ob sich der Zustand der Eingänge geändert hat, erfolgt jetzt nicht mehr im angeschlossenen PC sondern bereits auf der Relaiskarte selbst. Dadurch wird der PC erheblich entlastet. Eine Datenübermittlung von der Karte zum PC erfolgt nun erst bei einer Änderung des Zustandes an den Eingängen. Zur Kontrolle wird zusätzlich ca. alle 5 Sekunden der Status übertragen, ohne dass eine Änderung aufgetreten ist. Zur Unterscheidung dieser Statusübertragung und der Übertragung bei Zustandsänderung wird das Bit mit der Wertigkeit 16 eingeschaltet (für die Eingänge werden weiterhin nur die Bits 1-2-4-8 verwendet).
Weiterhin werden die Eingänge etwas entprellt. Das ist von Vorteil, falls mechanische Kontakte angeschlossen werden (Entprellzeit etwa 2 ms).
Für Interessierte habe ich den geänderten Quellcode angehängt.
Vorinformation zur PC-Software:
hendrik73 entwickelt z.Z. ein VB-Programm, mit dem die Relaiskarte zu vielfältigen Steuerungen verwendet werden kann. Das dauert aber noch ein paar Tage!