sat 0 2 февраля, 2005 Опубликовано 2 февраля, 2005 · Жалоба Где можно почитать по теме/посмотреть примеры на С, асме Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bialix 0 2 февраля, 2005 Опубликовано 2 февраля, 2005 · Жалоба Сайты: http://is.ifmo.ru http://softcraft.ru - раздел Автоматы еще см. на сайте iar.com программу VisualState Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-Tумблер- 0 3 февраля, 2005 Опубликовано 3 февраля, 2005 · Жалоба ...посмотреть примеры на С, асме <{POST_SNAPBACK}> Прямо здесь :) и сейчас :excl: : 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; // авария !! } } Важно понимать на уровне инстинктов: - Все обьекты материального Мира - автоматы состояний - придется полностю перестроить мозги - возможно это удасться не сразу, зато окупится потом. - что переход из состояния в состояние это как правило наиболее сложная часть и может быть представлена множеством состояний а лучше отдельным подчиненным автоматом. Или их совокупностью. - "автомат в состоянии" - это как правило ожидание условия перехода в другие состояния. Но не всегда. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ALys 0 3 февраля, 2005 Опубликовано 3 февраля, 2005 · Жалоба 1. IAR VisualSTATE - в пакете примеры (под разные контроллеры), есть симулятор самого автомата, т.е. в среде можно отладить логику работы автомата 2. TS Controls - программа для разработки автоматов состояний с генерацией кода на C и С++ TS_Controls.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ig_z 0 4 февраля, 2005 Опубликовано 4 февраля, 2005 · Жалоба 2. TS Controls - программа для разработки автоматов состояний с генерацией кода на C и С++ <{POST_SNAPBACK}> Что то не ставится на ХР. Или это аддон к чему - то? Может есть какой нибудь официальный сайт или мож какое нибудь описание? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sat 0 7 февраля, 2005 Опубликовано 7 февраля, 2005 · Жалоба Что то не ставится на ХР. Или это аддон к чему - то? Может есть какой нибудь официальный сайт или мож какое нибудь описание? <{POST_SNAPBACK}> Вроде нормально встал http://www.tscontrols.com/support.html - вот такое адрес Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maegg 0 7 февраля, 2005 Опубликовано 7 февраля, 2005 · Жалоба Может коротенько объясните, зачем это нужно и в каких случаях стоит применять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vet 0 7 февраля, 2005 Опубликовано 7 февраля, 2005 · Жалоба Может коротенько объясните, зачем это нужно и в каких случаях стоит применять? <{POST_SNAPBACK}> Некая обособленная подзадача в программе имеет набор состояний, в которых может находиться, и условий, согласно которым она переходит из одного состояния в другое. Реализация не должна мешать выполняться другим подзадачам. Типичные примеры - реализация коммуникационного протокола, выдача согласованных по времени управляющих сигналов, и т. п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ALys 0 8 февраля, 2005 Опубликовано 8 февраля, 2005 · Жалоба Что то не ставится на ХР. Или это аддон к чему - то? Может есть какой нибудь официальный сайт или мож какое нибудь описание? <{POST_SNAPBACK}> Прекрастно ставится и на XP и w2k и NT. Сам файл программы называется VState.exe Сайта поддержки нет. (Прога - что называется проверенная временем) В комплекте справка и примеры - все довольно прозрачно. Выходной код С и С++; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
basileus 0 17 февраля, 2005 Опубликовано 17 февраля, 2005 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tran 0 9 сентября, 2005 Опубликовано 9 сентября, 2005 · Жалоба Уважаемые, подскажите, пожалуйста, среды разработки для конечных автоматов. Я попробовал работать и на VisualState и на TS Control, обе генерят медленный код. Может, есть какие-нибудь другие проги? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 9 сентября, 2005 Опубликовано 9 сентября, 2005 · Жалоба Можно почитать теорию графов, там заложен базовый смысл всего этого. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergu 0 12 сентября, 2005 Опубликовано 12 сентября, 2005 · Жалоба Вот хорошие объяснения с примерами есть: State-Oriented Programming http://www.embedded.com/2000/0008/0008feat1.htm Embedded State Machine Implementation http://www.embedded.com/2000/0012/0012feat1.htm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TMX 0 12 сентября, 2005 Опубликовано 12 сентября, 2005 · Жалоба /*************************************************** * 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; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tran 0 12 сентября, 2005 Опубликовано 12 сентября, 2005 · Жалоба Этот код Вы наверняка писали руками. А есть ли проги, в которых можно нарисовать граф переходов, отладить, а потом сгенерить код по этому графу? Есть VisualState и на TS Control, но код они генерят - просто атас, особенно VisualState. В качестве примера я как-то сваял такой граф. Power - всегда нажатая кнопка, LEDon и LEDoff - состояния, в которых диод горит или потушен соответственно. Гонял на MSP430 на частоте 8,192 МГц. В случае VisualState диод моргал с частотой около 3 кГц, т.е. переход по состояниям выполнялся с частотой 6 кГц, или один переход выполнялся через 8192/6 = 1365 тиков тактовой частоты. Многовато для такого простого графа. В случае TS Control диод моргал с частотой 20 кГц, если отключить очередь событий, то 40 Кгц, т.е. один переход через 100 тиков. Лучше, конечно, но в TS Control нет симулятора. Так вот может кто знает прогу , в которой есть симулятор и которая генерит более-менее приемлемый код? А теорию я знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться