National Instruments NI-Motion User Manual

Page 176

Advertising
background image

Chapter 12

Synchronization

NI-Motion User Manual

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

Advertising