Phil,
It isn't possible to do deterministic pulse width modulation with you
board, however, I can think of a couple ways to try to get close.
If you set your board up to do a continous pulse train generation, you
have the ability through a DAQmx Channel Property Node to
programmatically set the count registers to a different value. In
the loop that waits for the Stop button, you can set the Wait For Next
Millisecond Multiple to be 10, and thus approximately every 10 ms you
would change the count register. You can change the frequency of
the pulse three ways, by frequency and duty cycle, actual pulse high
time and low time, or actual clock ticks for the high and low parts of
the cycle. The problem with this method is that since Windows
isn't deterministic, plus you are writing over the PCI bus to the
hardware, you are not guaranteed the accuracy of the 10ms loop.
Attached is a VI that shows this -- it is modified from the Gen Dig
Pulse Train-Continuous.vi example that ships with the NI-DAQmx driver.
Doug M
Applications Engineer
National Instruments
For those unfamiliar with NBC's The Office, my icon is NOT a picture of me 🙂