имеем указанный код^ на ST, скармливаемый CDS v3.5Код:(****кусочек 1******) CASE i OF 1: i:=i+1; 2: i:=i+1; 3: i:=i+1; 4: i:=i+1; 5: i:=i+1; 6: i:=i+1; 7: i:=i+1; 8: i:=i+1; 9: i:=i+1; 10: i:=1; END_CASE (*****кусочек 2****) IF i=0 THEN i:=i+1; END_IF IF i=1 THEN i:=i+1; END_IF IF i=2 THEN i:=i+1; END_IF IF i=3 THEN i:=i+1; END_IF IF i=4 THEN i:=i+1; END_IF IF i=5 THEN i:=i+1; END_IF IF i=6 THEN i:=0; END_IF (****кусочек 3******) //IF udc.reset=TRUE THEN udc.RESET:=FALSE; END_IF IF udc.CV =0 THEN udc.CU :=TRUE;END_IF IF udc.CV =1 THEN udc.CU :=TRUE;END_IF IF udc.CV =2 THEN udc.CU :=TRUE;END_IF IF udc.CV =3 THEN udc.CU :=TRUE;END_IF IF udc.CV =4 THEN udc.CU :=TRUE;END_IF IF udc.Q=TRUE THEN udc.RESET:=TRUE;END_IF IF udc.CU THEN udc.CU :=FALSE;END_IF udc ( pv:=5); (*****кусочек 4*****) WHILE mainLoop DO IF i=0 THEN i:=i+1; END_IF IF i=1 THEN i:=i+1; END_IF IF i=2 THEN i:=i+1; END_IF IF i=3 THEN i:=i+1; END_IF IF i=4 THEN i:=i+1; END_IF IF i=5 THEN i:=i+1; END_IF IF i=6 THEN i:=0; END_IF END_WHILE (*************)
а теперь ув. знатоки ВОПРОС?
какой кусок из перечисленных будет работать как конечный автомат ?
начальная переменная инициализируется снаружи (для отладки).
как реализовать конечный автомат на ST?
как это сделать корректно?
просьба не писать "мне нравится так",
а скомпилить и посмотреть как оно работает,
а потом написать,
я думаю что этот вариант лучше потому что...
будем коллективно обсуждать.