beautypg.com

ElmoMC Multi-Axis Motion Controller-Maestro User Manual

Page 270

background image

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