01-10-2012 04:41 PM
Hello all,
I'm looking for an extension card to PC (for example for PCI-E bus), which could generate ticks with very high precision (it should not be necessary input counter, all I need is tick generator in way CARD->PC (and OS)). What I need to achieve is to generate and perhaps via callback given to driver, to execute tasks (asynchronously) on the computer. Requested precision is +/- 1ms. Not more. It should run (be supported) under Windows 7 (both 32 and 64 bit).
None of the sofware approaches I tried so far worked to my satisfaction. (timeGetTime, QueryPerformanceCounter, sleep, waitformultipleobjects, execution in kernel mode, timer, ...). All of them tends to increase the error, in some cases by 50 ms and more (wich in case of 50ms rate is 100% error).
Hence I'm looking for some external card (if there is anything like it at all) wich could call me or wake me up from the sleep (in case of thread) at given intervals (typically at rate 50ms +/- 0.1 ms, but I would apprieciate configurable rate with same precision). And also I expect it would be able to conserve this rate and precision for long time run (non-interrupted for few days/one week)
Does NI provides anything near to my needs ? (I was not able to find it)
Many thanks,
Vladimir
01-11-2012
02:28 PM
- last edited on
01-23-2025
06:05 PM
by
Content Cleaner
Hi Vladimir, can you explain what types of tasks you would like to perform? ...are you looking to generating or acquiring voltage signals? Because so far it seems like you want to use the PCIe card to control the PC. If that's the case, why not simply program your code in LabVIEW (which supports x86 & x64 OS) and adding timing functions to regulate the execution or if you need to be more deterministic you can use Real-Time.
Regards,
01-15-2012 09:32 AM
Hello Alejandro,
Yes, you're right. I want to use PCIe card to control my thread execution (the time at witch is thread suspended and resumed), because Windows timer function is not precise enough. I don't process any voltage nor any other signals. I don't have any NI card yet and don't plan to use it except the possible timer stuff (for me timer is something wich waits given amount of time and then it spawns a thread or callback or something and sleeps again after). I would like to have configurable spawn time (f.e. once per 20 ms) with precision +/-1ms.
I cannot use LabView/RealTime, because it is a separate IDE and not a dll from wich I could use exported functions (even if, they would has to be thread safe).
I just come here, because one of my friends told me NI could have something similar to my needs and I should ask. Sorry If I wasn't clear enough first time.
Best Regards,
Vladimir
01-16-2012
02:31 PM
- last edited on
01-23-2025
06:05 PM
by
Content Cleaner
Actually, Real-Time is a special OS (for more reference see this article: What is a Real-Time Operating System (RTOS)?). And you can call Dlls from it, as mentioned in the article: How Can I Verify that My DLL is Executable in LabVIEW Real-Time? The +/- 1ms precision is something that can be achieve with almost any processor that are out there in the market so, your concern is more related with the software and how windows manage the hardware. That's why I mentioned Real-time since is more deterministic. Even if you manage to control your PC with the PCIe card you are bound to how windows handles the interruptions so your best option is to change the OS.