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

 
 
> State machine, Приведите примеры реализации
sat
сообщение Feb 2 2005, 12:29
Сообщение #1





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



Где можно почитать по теме/посмотреть примеры на С, асме
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sergu
сообщение Sep 12 2005, 03:27
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #3


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

Группа: Свой
Сообщений: 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
Сообщение #4


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

Группа: Свой
Сообщений: 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
TMX
сообщение Sep 15 2005, 16:34
Сообщение #5


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

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



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

провел эксперимент:
PIC18F6620 / 11.059 МГц:
47.67 КГц с откл. прерываниями

по поводу автоматической программы: по совету bialix тоже смотрел VisualState
разложил по затратам времени на этапах:
1. Написание драйверов в/в, служ.прг, и т.п. (вручную) - 30 %
2. рисование диаграммы состояний и согласование с заказчиком - 40% (как минимум - 2 - 3 вида на каждый автомат)
3. реализация кода вручную - 5%
4. отладка и тестирование на макете - 25%

автоматическая генерация кода не оказывает существенного влияния, как мне кажется.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sat   State machine   Feb 2 2005, 12:29
- - bialix   Сайты: http://is.ifmo.ru http://softcraft.ru - раз...   Feb 2 2005, 12:41
- - -Tумблер-   Цитата(sat @ Feb 2 2005, 15:29)...посмотреть ...   Feb 3 2005, 12:02
- - ALys   1. IAR VisualSTATE - в пакете примеры (под разные ...   Feb 3 2005, 15:52
|- - ig_z   Цитата(ALys @ Feb 3 2005, 18:52)2. TS Control...   Feb 4 2005, 12:44
|- - sat   Что то не ставится на ХР. Или это аддон к чему - ...   Feb 7 2005, 11:50
||- - maegg   Может коротенько объясните, зачем это нужно и в ка...   Feb 7 2005, 13:17
||- - vet   Цитата(maegg @ Feb 7 2005, 16:17)Может короте...   Feb 7 2005, 19:54
|- - ALys   Что то не ставится на ХР. Или это аддон к чему - ...   Feb 8 2005, 13:07
- - basileus   SWITCH MACRO local MYP CLR ZH ADZ (MYP>>1)...   Feb 17 2005, 12:50
- - Tran   Уважаемые, подскажите, пожалуйста, среды разработк...   Sep 9 2005, 09:30
- - BVU   Можно почитать теорию графов, там заложен базовый ...   Sep 9 2005, 11:20
- - lolikandr   Если интересует интересный инструмент, то посмотри...   Sep 13 2005, 09:35
- - Владимир_2010   Применение теории конечных автоматов к программиро...   Mar 4 2009, 12:54
|- - TMX   Цитата(Владимир_2010 @ Mar 4 2009, 16:54)...   Mar 4 2009, 17:31
- - Diz   Рекомендую ознакомиться с реализацией иерархически...   Mar 4 2009, 17:33
|- - _Pasha   Цитата(Diz @ Mar 4 2009, 20:33) Рекоменду...   Mar 4 2009, 18:20
|- - Alex B._   Цитата(_Pasha @ Mar 4 2009, 21:20) УПС. Т...   Mar 4 2009, 21:41
- - Владимир_2010   Diz спасибо за ссылку на книги. В сети также есть ...   Mar 5 2009, 06:54
|- - TMX   Цитата(Владимир_2010 @ Mar 5 2009, 10:54)...   Mar 5 2009, 14:29
|- - TMX   Цитата(Владимир_2010 @ Mar 5 2009, 10:54)...   Mar 5 2009, 15:17
|- - _Pasha   Цитата(TMX @ Mar 5 2009, 18:17) недостатк...   Mar 5 2009, 15:38
|- - TMX   Цитата(_Pasha @ Mar 5 2009, 18:38) Позвол...   Mar 5 2009, 17:09
|- - Diz   Цитата(TMX @ Mar 5 2009, 20:09) не слышал...   Mar 5 2009, 17:31
|- - _Pasha   Цитата(TMX @ Mar 5 2009, 20:09) там Marti...   Mar 5 2009, 17:50
|- - TMX   Цитата(_Pasha @ Mar 5 2009, 20:50) no com...   Mar 6 2009, 07:35
|- - _Pasha   Цитата(TMX @ Mar 6 2009, 10:35) если еще ...   Mar 6 2009, 13:42
|- - TMX   Недостатки прямого присваивания значения переменно...   Mar 10 2009, 13:42
- - _Pasha   А что-нибудь есть в ту же тему, но с текстовым вво...   Mar 5 2009, 14:35
- - Diz   Что касается визуализации, то я имел в виду следую...   Mar 5 2009, 16:55
- - Diz   Наверное, jumptable может быть полезен для сохране...   Mar 6 2009, 13:20
|- - TMX   Цитата(Diz @ Mar 6 2009, 16:20) Наверное,...   Mar 6 2009, 14:35
|- - Dog Pawlowa   Цитата(TMX @ Mar 6 2009, 18:35) сомнитель...   Mar 10 2009, 16:14
||- - TMX   Цитата(Dog Pawlowa @ Mar 10 2009, 19:14) ...   Mar 10 2009, 16:57
||- - Dog Pawlowa   Цитата(TMX @ Mar 10 2009, 20:57) с первым...   Mar 10 2009, 17:36
|- - Diz   Цитата(TMX @ Mar 6 2009, 17:35) сомнитель...   Mar 11 2009, 08:24
|- - TMX   Цитата(Diz @ Mar 11 2009, 11:24) Пример в...   Mar 11 2009, 09:06
|- - Dog Pawlowa   Цитата(TMX @ Mar 11 2009, 12:06) то есть,...   Mar 11 2009, 10:12
|- - TMX   Цитата(Dog Pawlowa @ Mar 11 2009, 13:12) ...   Mar 11 2009, 13:22
|- - _Pasha   Цитата(TMX @ Mar 11 2009, 17:22) Тестиров...   Mar 11 2009, 13:45
|- - Dog Pawlowa   Цитата(TMX @ Mar 11 2009, 17:22) А вот на...   Mar 11 2009, 13:46
|- - TMX   Цитата(Dog Pawlowa @ Mar 11 2009, 16:46) ...   Mar 12 2009, 12:14
|- - Dog Pawlowa   Цитата(TMX @ Mar 12 2009, 15:14) К пример...   Mar 13 2009, 09:21
|- - TMX   Цитата(Dog Pawlowa @ Mar 13 2009, 12:21) ...   Mar 13 2009, 10:07
|- - Dog Pawlowa   Цитата(TMX @ Mar 13 2009, 14:07) Просто м...   Mar 13 2009, 14:59
|- - _Pasha   Цитата(Dog Pawlowa @ Mar 13 2009, 17:59) ...   Mar 13 2009, 15:21
|- - TMX   Цитата(Dog Pawlowa @ Mar 13 2009, 17:59) ...   Mar 13 2009, 16:08
|- - _Pasha   Цитата(TMX @ Mar 13 2009, 19:08) Если авт...   Mar 13 2009, 16:23
|- - TMX   это я показал round-robin с постоянным приоритетом...   Mar 13 2009, 16:55
|- - _Pasha   Цитата(TMX @ Mar 13 2009, 20:55) Вопрос в...   Mar 13 2009, 17:14
- - -=TRO=-   Внутри программируемой логики собирают микропроцес...   Mar 10 2009, 16:47
- - _Pasha   Весь смех в том, что сишная или иная ЯВУ-программа...   Mar 10 2009, 18:17
- - Rst7   Цитатапри помощи переменной state эмулирует счетчи...   Mar 10 2009, 19:15
|- - ReAl   Цитата(Rst7 @ Mar 10 2009, 21:15) Я давно...   Mar 10 2009, 19:51
|- - Dog Pawlowa   Цитата(ReAl @ Mar 10 2009, 22:51) Тада, и...   Mar 11 2009, 07:18
|- - ReAl   Цитата(Dog Pawlowa @ Mar 11 2009, 09:18) ...   Mar 13 2009, 21:30
- - _Pasha   Цитата(Diz @ Mar 11 2009, 11:24) Индекс -...   Mar 11 2009, 11:40
- - Diz   Интересно, а как сделать с набором параллельно раб...   Mar 14 2009, 09:13
|- - Dog Pawlowa   Цитата(Diz @ Mar 14 2009, 13:13) Интересн...   Mar 14 2009, 13:07
|- - singlskv   Цитата(Diz @ Mar 14 2009, 12:13) Интересн...   Mar 14 2009, 22:23
||- - Diz   Цитата(singlskv @ Mar 15 2009, 01:23) Раз...   Mar 15 2009, 09:26
||- - _Pasha   Цитата(Diz @ Mar 15 2009, 13:26) Вообщем,...   Mar 16 2009, 06:17
||- - singlskv   Цитата(Diz @ Mar 15 2009, 12:26) Вообщем,...   Mar 19 2009, 20:12
|- - defunct   Цитата(Diz @ Mar 14 2009, 11:13) Интересн...   Mar 22 2009, 04:53
|- - Dog Pawlowa   Цитата(defunct @ Mar 22 2009, 07:53) Раск...   Mar 23 2009, 09:57
|- - _Pasha   Цитата(Dog Pawlowa @ Mar 23 2009, 13:57) ...   Mar 23 2009, 11:23
|- - Dog Pawlowa   Не нашел, чтобы эта ссылка была упомянута в теме. ...   Mar 24 2009, 11:52
- - Diz   Еще один интересный вариант реализации машины сост...   Mar 17 2009, 20:14
- - Diz   Цитата(singlskv @ Mar 19 2009, 23:12) Как...   Mar 19 2009, 21:32
- - Dog Pawlowa   Цитата(Diz @ Mar 20 2009, 00:32) Ну, это ...   Mar 20 2009, 09:05
- - singlskv   Цитата(Dog Pawlowa @ Mar 20 2009, 12:05) ...   Mar 20 2009, 20:10


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

 


RSS Текстовая версия Сейчас: 11th August 2025 - 06:26
Рейтинг@Mail.ru


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