Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/46: Рейтинг темы: голосов - 46, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 28.07.2015
Сообщений: 7

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

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

Студворк — интернет-сервис помощи студентам
желательно все коды применительно к компилятору CCS.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2015, 13:27
Ответы с готовыми решениями:

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

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

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

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

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

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

Есть разные способы реализовать КА, самый простой и глупый - вложенные switch case, а ля
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//Состояния
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
Конечные автоматы нужны для реализации чего-то вроде многозадачности программы. Т.е. если вам надо чего-то дождаться (например ответа устройства или реакции пользователя, типа нажатия кнопки), то ждать это нужно не в глухом цикле (типа while(!BUTTON_PRESS); когда программа "зависает" на этом цикле, пока не выполнится условие) а просто в конечном автомате, в статусе "ожидание нажатия" быстро один раз проверять - нажата кнопка или нет. Если нет, то выйти из функции, а если да, то изменить статус на "кнопка нажата" и при следующем заходе мы будем попадать уже в этот статус. Ещё можно тут системный таймер (удобная штука) проверять и реализовать таймаут нажатия...

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

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

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

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

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

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

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

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



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

Тут можно много пиздеть о многозадачности и прочих красивых словах, но есть вещи которые стоит знать, даже если не пользуешся. Это по поводу "забить". Нашли что посоветовать.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
15.04.2015, 11:58
Помимо всего прочего, FSM - это не только столь любимая в сообществе реализация кооперативной многозадачности, но и ещё целая куча вкусняшек - например, разбор протоколов. Так что надо знать и уметь готовить =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.04.2015, 11:58
Помогаю со студенческими работами здесь

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

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

State Machine для работы со строкой
Всем привет. Тема выплыла из предыдущего поста про парсинг строки. https://www.cyberforum.ru/java-j2se/thread1684913.html#post8885971 ...

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru