реклама на сайте
подробности

 
 
5 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> State machine, Приведите примеры реализации
sat
сообщение Feb 2 2005, 12:29
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 6-07-04
Пользователь №: 265



Где можно почитать по теме/посмотреть примеры на С, асме
Go to the top of the page
 
+Quote Post
bialix
сообщение Feb 2 2005, 12:41
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 174
Регистрация: 4-11-04
Из: zp.ua
Пользователь №: 1 046



Сайты:
http://is.ifmo.ru
http://softcraft.ru - раздел Автоматы

еще см. на сайте iar.com программу VisualState


--------------------
Имей мужество пользоваться своим собственным разумом! (с) И.Кант
Go to the top of the page
 
+Quote Post
-Tумблер-
сообщение Feb 3 2005, 12:02
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 146
Регистрация: 4-11-04
Из: Московская область
Пользователь №: 1 040



Цитата(sat @ Feb 2 2005, 15:29)
...посмотреть примеры на С, асме
*


Прямо здесь smile.gif и сейчас excl.gif :

void main (void)
{


while (1)
{

automat_1 ();
automat_2 ();
...
automat_N ();


}




}


void automat_i (void)
{
static char state=0;

switch (state)
{
case 0:
// чтото полезное может быть делаем
if (некоторое условие) state=... ;
// если условие выполнено, перейдем в другое состояние
return;

case 1:
// используем подчиненный автомат:
if (slave_automat_1 ()) state = .. ;
return;

...
case K:
return;

default: state=0; return; // авария !!


}


}

Важно понимать на уровне инстинктов:
- Все обьекты материального Мира - автоматы состояний
- придется полностю перестроить мозги
- возможно это удасться не сразу, зато окупится потом.

- что переход из состояния в состояние это как правило
наиболее сложная часть и может быть представлена
множеством состояний а лучше отдельным подчиненным автоматом.
Или их совокупностью.

- "автомат в состоянии" - это как правило ожидание условия
перехода в другие состояния. Но не всегда.

smile.gif


--------------------

- ЗАМЕНЯТЬ ДЕТАЛИ НА ХОДУ ВОСПРЕЩАЕТСЯ !!! -
Go to the top of the page
 
+Quote Post
ALys
сообщение Feb 3 2005, 15:52
Сообщение #4





Группа: Новичок
Сообщений: 11
Регистрация: 3-02-05
Пользователь №: 2 403



1. IAR VisualSTATE - в пакете примеры (под разные контроллеры), есть симулятор самого автомата, т.е. в среде можно отладить логику работы автомата

2. TS Controls - программа для разработки автоматов состояний с генерацией кода на C и С++
Прикрепленные файлы
Прикрепленный файл  TS_Controls.zip ( 1.7 мегабайт ) Кол-во скачиваний: 613
 
Go to the top of the page
 
+Quote Post
ig_z
сообщение Feb 4 2005, 12:44
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



Цитата(ALys @ Feb 3 2005, 18:52)
2. TS Controls - программа для разработки автоматов состояний с генерацией кода на C и С++
*


Что то не ставится на ХР. Или это аддон к чему - то?
Может есть какой нибудь официальный сайт или мож какое нибудь описание?
Go to the top of the page
 
+Quote Post
sat
сообщение Feb 7 2005, 11:50
Сообщение #6





Группа: Новичок
Сообщений: 10
Регистрация: 6-07-04
Пользователь №: 265



Что то не ставится на ХР. Или это аддон к чему - то?
Может есть какой нибудь официальный сайт или мож какое нибудь описание?
*

[/quote]

Вроде нормально встал
http://www.tscontrols.com/support.html - вот такое адрес
Go to the top of the page
 
+Quote Post
maegg
сообщение Feb 7 2005, 13:17
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 129
Регистрация: 22-06-04
Из: S. Peterburg
Пользователь №: 103



Может коротенько объясните, зачем это нужно и в каких случаях стоит применять?
Go to the top of the page
 
+Quote Post
vet
сообщение Feb 7 2005, 19:54
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Цитата(maegg @ Feb 7 2005, 16:17)
Может коротенько объясните, зачем это нужно и в каких случаях стоит применять?
*

Некая обособленная подзадача в программе имеет набор состояний, в которых может находиться, и условий, согласно которым она переходит из одного состояния в другое. Реализация не должна мешать выполняться другим подзадачам. Типичные примеры - реализация коммуникационного протокола, выдача согласованных по времени управляющих сигналов, и т. п.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
ALys
сообщение Feb 8 2005, 13:07
Сообщение #9





Группа: Новичок
Сообщений: 11
Регистрация: 3-02-05
Пользователь №: 2 403



Что то не ставится на ХР. Или это аддон к чему - то?
Может есть какой нибудь официальный сайт или мож какое нибудь описание?
*

[/quote]

Прекрастно ставится и на XP и w2k и NT.
Сам файл программы называется VState.exe

Сайта поддержки нет. (Прога - что называется проверенная временем)
В комплекте справка и примеры - все довольно прозрачно.

Выходной код С и С++;
Go to the top of the page
 
+Quote Post
basileus
сообщение Feb 17 2005, 12:50
Сообщение #10





Группа: Новичок
Сообщений: 3
Регистрация: 17-02-05
Пользователь №: 2 707



SWITCH MACRO
local MYP
CLR ZH
ADZ (MYP>>1)
IJMP /*Уйдем на обработчик*/
MYP
MyPrep VAR $
REPT \1
RJMP \2
ENDR
ENDM


CASE MACRO
val VAR $
ORG MyPrep+2*(\1)
RJMP ?Prg\1
ORG val
Public ?Prg\1
?Prg\1
ENDM


SWITCHC $80,?badEvnt
/*где $80 - индекс переключателЯ*/


?badEvnt /*прекратить разбор -обработка ошибки*/
RET


CASE $48 /*48 -команда */
CASE $4A /*4A -команда */
RJMP ?exit1

CASE $42 /*42 -команда */
CASE $44 /*44 -команда */
CASE $46 /*46 -команда */
RET
Go to the top of the page
 
+Quote Post
Tran
сообщение Sep 9 2005, 09:30
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 21-06-04
Пользователь №: 70



Уважаемые, подскажите, пожалуйста, среды разработки для конечных автоматов. Я попробовал работать и на VisualState и на TS Control, обе генерят медленный код. Может, есть какие-нибудь другие проги?


--------------------
Настоящее чревато будущим.
Go to the top of the page
 
+Quote Post
BVU
сообщение Sep 9 2005, 11:20
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Можно почитать теорию графов, там заложен базовый смысл всего этого.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Sergu
сообщение Sep 12 2005, 03:27
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 18-03-05
Пользователь №: 3 452



Вот хорошие объяснения с примерами есть:


State-Oriented Programming
http://www.embedded.com/2000/0008/0008feat1.htm

Embedded State Machine Implementation
http://www.embedded.com/2000/0012/0012feat1.htm
Go to the top of the page
 
+Quote Post
TMX
сообщение Sep 12 2005, 10:29
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 100
Регистрация: 19-01-05
Из: Москва
Пользователь №: 2 064



Код
/***************************************************
* definitions Section
***************************************************/
typedef void(*PVOID)(void);
typedef PVOID(*STATE)(void);

/***************************************************
* Export Variables Section
***************************************************/
STATE State_ptr = state_1;

/***************************************************
*   Function Prototype Section
***************************************************/
STATE State_1();
STATE State_2();
STATE State_3();

/**************************************************
* Function name    : void main (void)
* Created by  : tmx
* Date created  : 12.09.2005 14:27
* Description  : main
**************************************************/
void main (void)
{
    while (1)
    {
 State_ptr = (STATE) State_ptr();
    }
}

/**************************************************
* Function name    : STATE State_1()
* Created by  : tmx
* Date created  : 12.09.2005 14:23
* Description  : STATE function
* Notes      : called by ptr from main cycle in bgnd
**************************************************/
STATE State_1()
{
    if (event_1)
    {
 return (STATE) State_2;
    }
    else
 return (STATE) State_1;
}

/**************************************************
* Function name    : STATE State_2()
* Created by  : tmx
* Date created  : 12.09.2005 14:24
* Description  : STATE function
* Notes      : called by ptr from main cycle in bgnd
**************************************************/
STATE State_1()
{
    if (event_1)
    {
 return (STATE) State_3;
    }
    else
 return (STATE) State_2;
}

/**************************************************
* Function name    : STATE State_3()
* Created by  : tmx
* Date created  : 12.09.2005 14:24
* Description  : STATE function
* Notes      : called by ptr from main cycle in bgnd
**************************************************/
STATE State_3()
{
    if (event_3)
    {
 return (STATE) State_1;
    }
    else
 return (STATE) State_3;
}
Go to the top of the page
 
+Quote Post
Tran
сообщение Sep 12 2005, 11:14
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 21-06-04
Пользователь №: 70



Этот код Вы наверняка писали руками. А есть ли проги, в которых можно нарисовать граф переходов, отладить, а потом сгенерить код по этому графу? Есть VisualState и на TS Control, но код они генерят - просто атас, особенно VisualState. В качестве примера я как-то сваял такой граф. Power - всегда нажатая кнопка, LEDon и LEDoff - состояния, в которых диод горит или потушен соответственно. Гонял на MSP430 на частоте 8,192 МГц. В случае VisualState диод моргал с частотой около 3 кГц, т.е. переход по состояниям выполнялся с частотой 6 кГц, или один переход выполнялся через 8192/6 = 1365 тиков тактовой частоты. Многовато для такого простого графа. В случае TS Control диод моргал с частотой 20 кГц, если отключить очередь событий, то 40 Кгц, т.е. один переход через 100 тиков. Лучше, конечно, но в TS Control нет симулятора.
Так вот может кто знает прогу , в которой есть симулятор и которая генерит более-менее приемлемый код? А теорию я знаю.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Настоящее чревато будущим.
Go to the top of the page
 
+Quote Post

5 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 15:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01518 секунд с 7
ELECTRONIX ©2004-2016