TC1796
Peripheral Units (Vol. 2 of 2)
General Purpose Timer Array (GPTA)
User’s Manual 24-123 V2.0, 2007-07
GPTA, V2.0
Three_Sensors()
if ( ( S1.Level and !S2.Level and S3.Level and S1.Transition) or
( S1.Level and !S2.Level and !S3.Level and S3.Transition) or
( S1.Level and S2.Level and !S3.Level and S2.Transition) or
(!S1.Level and S2.Level and !S3.Level and S1.Transition) or
(!S1.Level and S2.Level and S3.Level and S3.Transition) or
(!S1.Level and !S2.Level and S3.Level and S2.Transition) ) then
generate pulse on PDLx.Signal_Forward
else
if ( ( S1.Level and S2.Level and !S3.Level and S1.Transition) or
(!S1.Level and S2.Level and !S3.Level and S3.Transition) or
(!S1.Level and S2.Level and S3.Level and S2.Transition) or
(!S1.Level and !S2.Level and S3.Level and S1.Transition) or
( S1.Level and !S2.Level and S3.Level and S3.Transition) or
( S1.Level and !S2.Level and !S3.Level and S2.Transition) ) then
generate pulse on PDLx.Signal_Backward
endif
endif
if ( (S1.Level == S2.Level) and (S1.Level == S3.Level) ) then //error
if (!PDLx.Signal_Output2.Level) then //rising edge
generate pulse on PDLx.Signal_Output2.Transition
endif
PDLx.Signal_Output2.Level = 1
PDLx.Error = 1
else //no error
if (PDLx.Signal_Output2.Level) then //falling edge
generate pulse on PDLx.Signal_Output2.Transition
endif
PDLx.Signal_Output2.Level = 0
endif