Chapter 12
Synchronization
12-6
ni.com
//
Buffer resources
i32
breakpointPositions[] = {1000, 1100, 1200, 1300,
1400, 1500, 1600};
u16
numberOfPoints = 7;//
Number of breakpoints
f64
actualInterval;//
Required in the function call
but not being
//
used
f64
requestedInterval = 10.0;//
Required in the
function call but
//
not being used
u32
backLog;//
Number of space available in buffer
u16
bufferState;//
Buffer state
u32
pointsDone;//
Number of breakpoints done or
consumed
//
Configure the buffer for buffered breakpoint
err =
flex_configure_buffer
(boardID, buffer,axis,
NIMC_BREAKPOINT_DATA, numberOfPoints,
numberOfPoints,NIMC_TRUE, requestedInterval,
&actualInterval);
CheckError;
//
Write the breakpoint position to the buffer
err =
flex_write_buffer
(boardID, buffer,
numberOfPoints, NIMC_REGENERATION_NO_CHANGE,
breakpointPositions, 0xFF);
CheckError;
//
Configure the breakpoint to be buffered breakpoint
err =
flex_configure_breakpoint
(boardID, axis,
NIMC_ABSOLUTE_BREAKPOINT, NIMC_PULSE_BREAKPOINT,
NIMC_OPERATION_BUFFERED);
CheckError;
//
Enable the breakpoint
err =
flex_enable_breakpoint
(boardID, axis,
NIMC_TRUE);
CheckError;
//
Poll the status of the buffer, if you have more
breakpoint
//
positions to write, insert
flex_write_buffer call here.
do
{
//
Check the buffer status
err =
flex_check_buffer_rtn
(boardID, buffer,
&backLog, &bufferState, &pointsDone);
CheckError;
Sleep(50);