Chapter 12 Synchronization
NI-Motion User Manual 12-20 ni.com
CheckError;
printf("\n");
do
{
//Read the axis status
err =
flex_read_axis_status_rtn(boardID,axis,&axisStat
us);
CheckError;
err =
flex_read_pos_rtn(boardID,axis,&currentPos);
CheckError;
//Check the breakpoint bit
bpStatus = !((axisStatus &
NIMC_POS_BREAKPOINT_BIT)==0);
//Check the profile complete bit
profileStatus = !((axisStatus &
NIMC_PROFILE_COMPLETE_BIT)==0);
printf("Current Position=%10d Breakpoint
Status=%d Profile
Complete=%d\r",currentPos,bpStatus,profileStatus
);
//Check for modal errors
err = flex_read_csr_rtn(boardID,&csr);
CheckError;
//Check the modal errors
if (csr & NIMC_MODAL_ERROR_MSG)
{
flex_stop_motion(boardID,NIMC_VECTOR_SPA
CE1, NIMC_DECEL_STOP, 0);//Stop the
Motion
err = csr & NIMC_MODAL_ERROR_MSG;
CheckError;
}
}while(!profileStatus);
printf("\nFinished.\n");
return; // Exit the Application
///////////////////////////////////////////////////
//////////////////////
// Error Handling
//