Al een poosje ben ik in Python een programma aan het schrijven waarmee ik door middel van JTAG data in een chip kan zetten of uitlezen. Deze JTAG-interface komt op de parallelle poort.
Het is me gelukt om door middel van een zelf geschreven module de LPT-poort aan te sturen, maar hierbij stuit ik op een probleem.
Ik noem dit probleem "het probleem van de 100 Hz".
Tijdens het testen van mijn eerste het script kreeg ik de verversingsfrequentie van de poort niet hoger dan 100 Hz, dit is gemeten met de Oscilloscoop.
Om dit te omzeilen heb ik via de module "ctypes" geprobeerd door middel van de Windows-timers in de kernel32.dll de frequentie nog meer omhoog te krijgen. De timers die in Windows zitten kan je theoretisch op 100 ns. nauwkeurig instellen. Maar ook via deze weg kom ik niet verder dan 100 Hz.
Nu heb ik uit frustratie een pythonextension in c geschreven waarbij ik gebruik maakt van de Windows API. Van deze extension heb ik een hoop grijze haren gekregen en (bijna) geen nagels meer overgehouden.
En u raad het waarschijnlijk al, weer niet verder dan 100 Hz. Dit keer ben ik er wel minder zeker van de nauwkeurigheid omdat ik geen oscilloscoop tot mijn beschikking heb. Maar wanneer je een lijst van 400 items in de buffer van je extension zet en het LED-tje brandt ongeveer 4 sec. terwijl de verversingsfrequentie op 1 MHz staat, kan je er wel vanuit gaan dat het ongeveer 100 Hz is.
Ik weet dat de module "time" ook een nauwkeurigheid heeft van 1/100 sec. en ik heb ook ergens gelezen dat deze tijd ergens in Python zit ingebakken. (Ik kan de link niet meer terug vinden.)
Mijn punt is of er meer mensen met het 100 Hz probleem te maken hebben gehad en hoe ze dit hebben opgelost.
Het is me gelukt om door middel van een zelf geschreven module de LPT-poort aan te sturen, maar hierbij stuit ik op een probleem.
Ik noem dit probleem "het probleem van de 100 Hz".
Tijdens het testen van mijn eerste het script kreeg ik de verversingsfrequentie van de poort niet hoger dan 100 Hz, dit is gemeten met de Oscilloscoop.
Om dit te omzeilen heb ik via de module "ctypes" geprobeerd door middel van de Windows-timers in de kernel32.dll de frequentie nog meer omhoog te krijgen. De timers die in Windows zitten kan je theoretisch op 100 ns. nauwkeurig instellen. Maar ook via deze weg kom ik niet verder dan 100 Hz.
Nu heb ik uit frustratie een pythonextension in c geschreven waarbij ik gebruik maakt van de Windows API. Van deze extension heb ik een hoop grijze haren gekregen en (bijna) geen nagels meer overgehouden.
En u raad het waarschijnlijk al, weer niet verder dan 100 Hz. Dit keer ben ik er wel minder zeker van de nauwkeurigheid omdat ik geen oscilloscoop tot mijn beschikking heb. Maar wanneer je een lijst van 400 items in de buffer van je extension zet en het LED-tje brandt ongeveer 4 sec. terwijl de verversingsfrequentie op 1 MHz staat, kan je er wel vanuit gaan dat het ongeveer 100 Hz is.
Ik weet dat de module "time" ook een nauwkeurigheid heeft van 1/100 sec. en ik heb ook ergens gelezen dat deze tijd ergens in Python zit ingebakken. (Ik kan de link niet meer terug vinden.)
Mijn punt is of er meer mensen met het 100 Hz probleem te maken hebben gehad en hoe ze dit hebben opgelost.