|
State machine, Приведите примеры реализации |
|
|
|
Feb 2 2005, 12:29
|
Группа: Новичок
Сообщений: 10
Регистрация: 6-07-04
Пользователь №: 265

|
Где можно почитать по теме/посмотреть примеры на С, асме
|
|
|
|
|
 |
Ответов
|
Sep 12 2005, 10:29
|
Частый гость
 
Группа: Свой
Сообщений: 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; }
|
|
|
|
|
Sep 12 2005, 11:14
|
Частый гость
 
Группа: Свой
Сообщений: 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 нет симулятора. Так вот может кто знает прогу , в которой есть симулятор и которая генерит более-менее приемлемый код? А теорию я знаю.
Эскизы прикрепленных изображений
--------------------
Настоящее чревато будущим.
|
|
|
|
|
Sep 15 2005, 16:34
|
Частый гость
 
Группа: Свой
Сообщений: 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% автоматическая генерация кода не оказывает существенного влияния, как мне кажется.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|