01-28-2006 12:51 PM
01-30-2006 05:21 PM
Chinook,
There isn’t quite enough information here, and a couple of things are unclear. First of all, what hardware are you using (PCI-6xxx, PXI-6xxx, etc.)? What version of the DAQmx driver are you using? How are you connecting the signal? Also your description:
“The spreadsheet attachment is from the datastrobeline, that I am trying to use to program an on board part. Due to the extra pulse the program events of LSB first and MSB last are not being programmed correctly.”
This is a little confusing. Are you just trying to generate a 95nsec digital pulse, and this pulse is being used to program something else. And because of the wrong pulse(s) the LSB and the MSB of this something else that you are programming is getting messed up? So basically from the NI hardware stand point, you just need to generate a 95ns square pulse on a digital line? Also, looking at your excel graph, it looks like your line is inversed, i.e. logical 0 = 5V and 1 = 0V. Is that correct?
-GDE
01-31-2006 06:42 AM
Found problem with the buffer size. The buffer size was adding the additional pulses. Had to change the buffer size to one size larger than the waveform generator size. See the bold text. I am using a NI 6534 unit. Change the 1000 to 14 and this eliminated all of the extra pulse on the output control pin.
DAQmxErrChk (DAQmxCreateTask("VTI",&taskHandle)); /* creates task for the I/O card*/
DAQmxErrChk (DAQmxCreateDOChan (taskHandle, "Dev1/port0_32", "mychan", DAQmx_Val_ChanForAllLines)); /*tells the I/O card what lines are active and the name of the lines*/
DAQmxErrChk (DAQmxCfgSampClkTiming (taskHandle, "OnboardClock", 20000000, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps,1000)); /*Sets the waveform timing*/
DAQmxErrChk (DAQmxGetTaskAttribute(taskHandle,DAQmx_Task_NumChans,&numChannels));
DAQmxResetDOUseOnlyOnBrdMem(taskHandle, "mychan");
DAQmxSetDOUseOnlyOnBrdMem(taskHandle, "mychan", 1); /*makes board use it's onboard Memory*/