Chapter 14 Onboard Programs
© National Instruments Corporation 14-23 NI-Motion User Manual
err = flex_load_target_pos(boardID, axis, 5000,
0xFF);
CheckError;
// Wait for line 1 on port 1 to go active to finish
executing
err = flex_wait_on_event(boardID, NIMC_IO_PORT1,
NIMC_WAIT, NIMC_CONDITION_IO_PORT_MATCH,
(u8)(1<<1)/*Indicates line 1*/, 0, NIMC_MATCH_ALL,
10000 /*time out*/, 0);
CheckError;
// Start the move
err = flex_start(boardID, axis, 0);
CheckError;
// Wait for move to complete
err = flex_wait_on_event(boardID, 0, NIMC_WAIT,
NIMC_CONDITION_MOVE_COMPLETE, (u8)(1<<axis), 0,
NIMC_MATCH_ALL, 1000 /*time out*/, 0);
CheckError;
// Jump unconditionally to label 1 and check IO line
again
err = flex_jump_on_event (boardID, 0,
NIMC_CONDITION_TRUE, 0, 0, NIMC_MATCH_ALL, 1/*label
number*/);
CheckError;
// End Program Storage
err = flex_end_store(boardID, 1);
CheckError;
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,&commandI
D,&resourceID, &errorCode);
nimcDisplayError(errorCode,commandID,res
ourceID);