Chapter 12
Synchronization
12-26
ni.com
err =
flex_enable_breakpoint
(boardID, axis,
NIMC_TRUE);
CheckError;
do
{
//
Check the move complete
status/following error/axis
off
//
status
err =
flex_read_axis_status_rtn
(boardID,
axis, &axisStatus);
CheckError;
//
Read the communication status register
and check the
modal
//
errors
err =
flex_read_csr_rtn
(boardID, &csr);
CheckError;
//
Check the modal errors
if
(csr & NIMC_MODAL_ERROR_MSG)
{
err = csr & NIMC_MODAL_ERROR_MSG;
CheckError;
}
Sleep (10); //
Check every 10 ms
}
while
(!(axisStatus & NIMC_POS_BREAKPOINT_BIT));
//
Wait for
breakpoint to be triggered
}
return
;//
Exit the Application
//////////////////////
//
Error Handling
nimcHandleError; //
NIMCCATCHTHIS
:
//
Check to see if there were any Modal Errors
if
(csr & NIMC_MODAL_ERROR_MSG){
do
{
//
Get the command ID, resource ID, and the error
code of the
modal
//
error from the error stack on
the device
flex_read_error_msg_rtn
(boardID,&commandID,&reso
urceID, &errorCode);
nimcDisplayError(errorCode,commandID,resourceID)
;
//
Read the communication status register
flex_read_csr_rtn
(boardID,&csr);
}
while
(csr & NIMC_MODAL_ERROR_MSG);
else
//
Display regular error