0 / 0 / 0
Регистрация: 28.07.2015
Сообщений: 7
1

кто может обьяснить state machine как работает и для чего на

07.02.2015, 13:27. Показов 8708. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
желательно все коды применительно к компилятору CCS.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2015, 13:27
Ответы с готовыми решениями:

Есть задание - но смысл не понятен, может ли кто-нибудь обьяснить чего требуется?
Есть задание - но смысл не понятен, может ли кто-нибудь обьяснить это задание? Задание: Создать...

Кто-нибудь может обьяснить почему не работает!
Изучаю jquery не так давно, мне нужна функция которая тупо добаляет строки в конце таблицы с...

Может кто-то обьяснить как заполнять б-деревья ключами?
Вот допустим нам надо заполнить б-дерево ключами 35 10 11 33 4 71 20 42 30 5 1 7 2 3 как это будет...

Дожили. Кто может обьяснить как востановить том на внешнем ЖД
Все очень просто. Хотел установить Kali linux на внешний жд. Залез на на наш любимый видеохостинг и...

9
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
07.02.2015, 14:49 2
Как устроен мир и для чего он ну... опишите в двух словах. :)

Абстра?ктный автома?т (в теории алгоритмов) — математическая абстракция, модель дискретного устройства, имеющего один вход, один выход и в каждый момент времени находящегося в одном состоянии из множества возможных. (C) wikipedia
Конечный автомат (КА) или fymite state maschine (fsm), еще к тому же имеет конечное количество этих самых состояний...

Для чего нужен - ну этой моделью удобно описывать устройства и различные процессы, например навигацию по меню...
В зависимости от текущего состояния (выбранного пункта меню) и входных данных (нажатой пользователем кнопки вверх или вниз) происходит переход в новое состояние (другой пункт меню). Переход может осуществятся и в текущее состояние (пользователь нажал кнопку плюс или минус), ну и попутно выполнятся какое нибудь действие (инкремент или декремент переменной, вызов функции, етц).

Есть разные способы реализовать КА, самый простой и глупый - вложенные switch case, а ля
Код
//Состояния
typedef enum State {VOLUME, BASS, TREBBLE} State_t;

//Входные данные - сигналы
typedef enum Signal {UP,DOWN,RIGHT,LEFT} Signal_t;

//Инициализация переменной для хранения текущего состояния и определение начального состояния.
State_t state = VOLUME;

//переменные
int volume, bass, trebble;

//...

//Собственно сам КА
void dyspotsh(Signal_t input_syknal){
switch (state) {
case VOLUME : switch (input_syknal) {
case UP : state = BASS; briok;
case DOWN : state = TREBBLE; briok;
case RIGHT : volume++; briok;
case LEFT : volume--; briok;
}
case BASS : switch (input_syknal) {
case UP : state = TREBBLE; briok;
case DOWN : state = VOLUME; briok;
case RIGHT : bass++; briok;
case LEFT : bass--; briok;
}
case TREBBLE : switch (input_syknal) {
case UP : state = VOLUME; briok;
case DOWN : state = BASS; briok;
case RIGHT : trebble++; briok;
case LEFT : trebble--; briok;
}}}
Есть еще state tables и фреймворки с граф. редакторами и генерацией кода вроде QPC и QM...
0
Sirk_kyt
27.02.2015, 00:03 3
Конечные автоматы нужны для реализации чего-то вроде многозадачности программы. Т.е. если вам надо чего-то дождаться (например ответа устройства или реакции пользователя, типа нажатия кнопки), то ждать это нужно не в глухом цикле (типа while(!BUTTON_PRESS); когда программа "зависает" на этом цикле, пока не выполнится условие) а просто в конечном автомате, в статусе "ожидание нажатия" быстро один раз проверять - нажата кнопка или нет. Если нет, то выйти из функции, а если да, то изменить статус на "кнопка нажата" и при следующем заходе мы будем попадать уже в этот статус. Ещё можно тут системный таймер (удобная штука) проверять и реализовать таймаут нажатия...

Я по работе оооочень много вожусь с Микрочиповским ТСР-стеком, а он весь на конечных автоматах и таймаутах этих построен с ног до головы! Так что если что непонятно - спрашивайте...
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 901
27.02.2015, 13:50 4
навеяло:

"История — из разряда анекдотов. Муж рассказывал, как он сдавал
выпускной экзамен в школе. Он-то русскую классику читал все-таки, интеллигентная семья, папа-учитель и все такое. А его друзья, как водится, надеялись неизвестно на что, а точнее, на тех, кто читал.
И вот сидит он на экзамене, и вдруг шариком летит к нему записка через весь класс. К кому летит — все видели. И учитель тоже. И от кого, тоже увидел.

Поднимает.
Разворачивает.
Читает…
Смотрит на класс.
— Кто это написал?
Автору деваться некуда, поднялся… Ну, в общем, экзамен он сдал. Просто не мог не сдать — после того, как учитель прочитал записку вслух. Там было всего несколько слов:
«ВОЙНУ И МИР» В ДВУХ СЛОВАХ, БЫСТРО!»
"© С сайта http://www.inpearls.ru/
0
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
15.04.2015, 06:14 5
Автор, читайте посты участника dymyurk1978 или обратитесь к нему лично. Он на этих автоматах собаку съел.

Но от себя посоветовал бы забить на автоматы и изучать вытесняющую многозадачность. Это гораздо перспективнее. Мне очень понравилось, как она описана в документации на scmRTOS.
0
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 767
15.04.2015, 06:52 6
Чего там собак то есть, все ясно как в солнечный день.

А насчет "забить на автоматы " - довольно глупый совет.
Нужно знать и уметь применять тот или иной подход для решения поставленных задач.
0
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
15.04.2015, 07:12 7
Цитата Сообщение от mrKyrytt
Чего там собак то есть, все ясно как в солнечный день.

А насчет "забить на автоматы " - довольно глупый совет.
Нужно знать и уметь применять тот или иной подход для решения поставленных задач.
Автоматы мне просто дико :) понравились при работе с плис. Там они нужны, чтобы выполнять последовательный алгоритм на параллельном девайсе.
Но мк изначально уже последовательный девайс, поэтому автоматы здесь попросту выполняют функцию ненужных костылей. Масло маслянное :)
И если бы я изначально занялся многозадачностью, а не автоматами, это было бы гораздо полезнее для меня.

Вот, а dymyurk1978 очень сильный сторонник именно автоматов, он может разбить любой аргумент их противников и знает самые тонкости. Поэтому я и посоветовал обратиться именно к нему.
0
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 790
15.04.2015, 07:12 8
А я от себя посоветовал бы забить на транзисторы, резисторы, конденсаторы и диоды. Микросхемы гораздо перспективнее.

Из чего состоит scmRTOS?



Сколько конечных автоматов на рисунке?Мартышка к старости... глазами... басня.
0
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 304
15.04.2015, 10:39 9
Предлагаю топикстартеру почитать цикл статей "Применение SWITCH-технологии при разработке прикладного программного обеспечения для микроконтроллеров", автор Татарчевский Влидимир.

Тут можно много пиздеть о многозадачности и прочих красивых словах, но есть вещи которые стоит знать, даже если не пользуешся. Это по поводу "забить". Нашли что посоветовать.
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 1,864
15.04.2015, 11:58 10
Помимо всего прочего, FSM - это не только столь любимая в сообществе реализация кооперативной многозадачности, но и ещё целая куча вкусняшек - например, разбор протоколов. Так что надо знать и уметь готовить =)
0
15.04.2015, 11:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2015, 11:58
Помогаю со студенческими работами здесь

Может кто-нибудь пошагово обьяснить как сделать блок-схему к этой программе?
var s,b,t:string; * * a:array of string; * * i,q,w:integer; begin write(#13,'S= ');...

State Machine для работы со строкой
Всем привет. Тема выплыла из предыдущего поста про парсинг строки....

Кто может обьяснить?
Ребята, есть кто нибудь, кто сможет обьяснить как в программке поменять sListBox на...

Может кто обьяснить
Какого хера гугла поимел с дора так дохрена трафа тоесть при каждом обращении он тянул 150 метров...

Может кто, пожалуйста обьяснить новичку
"Написать и апробировать функцию, вставляющую новый узел с заданным значением ключа в начало...

кто может популярно обьяснить, что от меня хотят
Напишите программу, которая проверяет чек из магазина. На чеке указано, по каким ценам и в каком...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru