If you have PBP 2.60, you might do something like this ...
Code:
LED VAR PortB.0
CmdIdx VAR BYTE
Data_Array VAR BYTE[4]
CmdString VAR BYTE[3]
;--- Subroutine to parse commands -----------------------------
Parse:
FOR CmdIdx = 0 to 3
SELECT CASE CmdIdx
CASE 0 : ARRAYWRITE CmdString,["ABC"]
CASE 1 : ARRAYWRITE CmdString,["DEF"]
CASE 2 : ARRAYWRITE CmdString,["GHI"]
CASE 3 : ARRAYWRITE CmdString,["JKL"]
END SELECT
ARRAYREAD Data_Array,3,NoCmd,[WAITSTR CmdString\3]
ON CmdIdx GOTO cmd_ABC, cmd_DEF, cmd_GHI, cmd_JKL ; found cmd
NoCmd:
NEXT CmdIdx
; if it gets here no commands were found
RETURN
cmd_ABC:
SELECT CASE Data_Array[3]
CASE "1"
HIGH LED 'If received ABC1
PAUSE 1000 'then turn LED on
LOW LED 'for 1s and return
CASE "2"
HIGH LED 'If received ABC2
PAUSE 2000 'then turn LED on
LOW LED 'for 2s and return
END SELECT
RETURN
cmd_DEF:
RETURN
cmd_GHI:
RETURN
cmd_JKL:
RETURN
Bookmarks