ElmoMC Multi-Axis Motion Controller-Maestro User Manual
Page 270

lastData = m_din
mask = 0x1
inputStatus=0
while(1)
until (inputStatus==1) // wait until input interrupt is occur
inputStatus=0
if
(callbackNodeId==0)
//one of the Maestro inputs
inputNum
=
8
else //one of the Harmonica inputs
inputNum
=
6
end
if
if (callbackNodeId==0)
for
i=0:inputNum-1
callbackInputData = mask&callbackData
lastInputData = mask&lastData
//check in each input interrupt is occur
if
(callbackInputData!=lastInputData)
//
check
interrupt
level
if(callbackInputData==0)
TRACE ("Node Id is %, Input #% low level",callbackNodeId, i+1)
else
TRACE ("Node Id is %, Input #% high level",callbackNodeId, i+1)
end
if
end
if
mask
=
mask<<1
end for
lastData=callbackData
mask = 0x1 //reset mask
end
if
end
while
end function
// Input handler calls then a input event occur.
function @input(int busId, int nodeId, int data)
global int inputStatus
global int callbackData, callbackNodeId
inputStatus=1
callbackData=data
callbackNodeId=nodeId
end function
Maestro
Software Manual
Appendix B: Sample Programs
MAN-MASSW (Ver. Q)
B-18