ktyjixy
31.01.2013, 12:00
(****кусочек 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, скармливаемый CDS v3.5
а теперь ув. знатоки ВОПРОС :confused: ?
какой кусок из перечисленных будет работать как конечный автомат ?
начальная переменная инициализируется снаружи (для отладки).
как реализовать конечный автомат на ST?
как это сделать корректно?
просьба не писать "мне нравится так",
а скомпилить и посмотреть как оно работает,
а потом написать,
я думаю что этот вариант лучше потому что...
будем коллективно обсуждать.
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, скармливаемый CDS v3.5
а теперь ув. знатоки ВОПРОС :confused: ?
какой кусок из перечисленных будет работать как конечный автомат ?
начальная переменная инициализируется снаружи (для отладки).
как реализовать конечный автомат на ST?
как это сделать корректно?
просьба не писать "мне нравится так",
а скомпилить и посмотреть как оно работает,
а потом написать,
я думаю что этот вариант лучше потому что...
будем коллективно обсуждать.