Om een stukje hardware (een LEDje op de parallelle printerpoort) aan te sturen heb ik een programma geschreven wat het LEDje steeds gedurende korte tijd (orde 0.5 ms) een puls laat geven. Binnen deze puls wordt het LEDje 38000 keer per seconde aan- en uitgezet, ook via software. Tussen twee pulsjes zit steeds minimaal 0.5 ms rust.
Hiermee wil ik mijn digitale decoder bedienen vanaf mijn PC.
Als ik het programma draai op de allerhoogste prioriteit ("nice -rt", -r = "Realtime priority", t = "Time-critical") gaat het aansturen meestal goed. Maar, aangezien Windows XP geen echte real-time ondersteunt wordt het signaal soms toch kort (rond 0.5 ms) onderbroken. Dat is natuurlijk veel te veel, waardoor het omschakelen naar het gewenste kanaal faalt.
Zijn er nog trucs om het onderbreken nog verder te verminderen? (Ik heb overigens maar 1 CPU). Het totale signaal duurt ongeveer 15 ms, met dus steeds piekjes van elk 0.55 ms met pauzes ertussen van 0.6 of 1.75 ms. Een methode om de onderbrekingen in de pauzes te laten vallen zou ook werken!
Hiermee wil ik mijn digitale decoder bedienen vanaf mijn PC.
Als ik het programma draai op de allerhoogste prioriteit ("nice -rt", -r = "Realtime priority", t = "Time-critical") gaat het aansturen meestal goed. Maar, aangezien Windows XP geen echte real-time ondersteunt wordt het signaal soms toch kort (rond 0.5 ms) onderbroken. Dat is natuurlijk veel te veel, waardoor het omschakelen naar het gewenste kanaal faalt.
Zijn er nog trucs om het onderbreken nog verder te verminderen? (Ik heb overigens maar 1 CPU). Het totale signaal duurt ongeveer 15 ms, met dus steeds piekjes van elk 0.55 ms met pauzes ertussen van 0.6 of 1.75 ms. Een methode om de onderbrekingen in de pauzes te laten vallen zou ook werken!
