-
- А так? Использованы protothreads(switch). Разнесен вход в состояние
(goto) и возврат из планировщика (PT_WAIT). Между меткой goto и
PT_WAIT - код, который выполняется один раз, при входе в состояние. Cкpипaч(49 знак., 25.02.2023 11:35)
- Ну, так сработает наверняка лишь если код внутри состояния не
требует своего контекста, прямолинеен и работает только с
глобальными волатильными переменными. Тогда да - залетели в
обработчик, исполнили и отдали управление ОС. По идее, стек не
используется, сохранять/восстанавливать нечего. Почему бы и нет? - Nikolay_Po(25.02.2023 14:24)
- То, что работает, уже больше двадцати лет как работает. Вопрос есть
ли разумная замена goto, в таком контексте,
чтобы не ранить утонченные чувства юных дарований? - Cкpипaч(25.02.2023 15:09)- Состояния в функции оформить? - Nikolay_Po(25.02.2023 16:45)
- И как из состояния в состояние переходить? Указатель на функцию?
Как вариант. Нужно подумать. Спасибо :) - Cкpипaч(25.02.2023 18:08)
- Функция, разумеется, не должна иметь аргументов и ментять что-либо
не глобальное. Иначе есть риск переполнения стека. - Nikolay_Po(27.02.2023 13:33)
- Указатель на PT_THREAD :) Оставил как есть. Просто, надежно,
читабельно. Хоть и с goto. - Cкpипaч(28.02.2023 09:50)
- Не нужен указатель pt в виде аргумента. Нужно всего лишь... SciFi(107 знак., 28.02.2023 09:59)
- Указатель на PT_THREAD :) Оставил как есть. Просто, надежно,
читабельно. Хоть и с goto. - Cкpипaч(28.02.2023 09:50)
- Функция, разумеется, не должна иметь аргументов и ментять что-либо
не глобальное. Иначе есть риск переполнения стека. - Nikolay_Po(27.02.2023 13:33)
- И как из состояния в состояние переходить? Указатель на функцию?
Как вариант. Нужно подумать. Спасибо :) - Cкpипaч(25.02.2023 18:08)
- Состояния в функции оформить? - Nikolay_Po(25.02.2023 16:45)
- То, что работает, уже больше двадцати лет как работает. Вопрос есть
ли разумная замена goto, в таком контексте,
- Ну, так сработает наверняка лишь если код внутри состояния не
требует своего контекста, прямолинеен и работает только с
глобальными волатильными переменными. Тогда да - залетели в
обработчик, исполнили и отдали управление ОС. По идее, стек не
используется, сохранять/восстанавливать нечего. Почему бы и нет? - Nikolay_Po(25.02.2023 14:24)
- А если это не ошибки, а просто перед переходом в определенные
состояния нужна подготовка, и лучше чтобы это было только четко
одно место а не несколько абсолютно одинаковых фрагментов в разных
состояниях автомата? Cкpипaч(105 знак., 25.02.2023 11:01)
- Функция должна быть короткой, как тост, как выстрел, иначе времени
на отдых не останется. - Visitor(25.02.2023 11:04)
- Функция или подпрограмма должна укладываться в один экран - 25
строк, еще со времен
Очакова и покоренья КрымаDEC машин и терминала 15ИЭ-00-013 повелося. - Alex68(25.02.2023 15:22)- Ширина лошадиной задницы, помним. Cкpипaч(63 знак., 25.02.2023 15:37)
- ширина двух задниц равна бочке с кырасином и кыслородом. таки да. Alex68(97 знак., 25.02.2023 15:57)
- Сильнее всего ухудшает читабельность не goto, и не >25 строк
функции, а избыточные абстракции и выпендреж. Cкpипaч(79 знак., 25.02.2023 16:17)
- ранее писал на basic, и сам интертрепатор тоже сам писал. на разных
платформах. и паскале-подобный компилятор тоже писал. тогда это
было модно)) все писали, и я писал. ээээхххх.... - Alex68(25.02.2023 16:36)
- Вот вот, я проц дековский на ФПГА написал, а толку? Все богаче
стали? - Visitor(25.02.2023 18:35)
- Ляпота... Но сейчас уже не надь. Лежатъ вотъ 1801ВМ2, керамика, золото, дорохо-бохато. Зачемъ лежатъ? (пожал плечами) - Alex68(25.02.2023 20:12)
- Хех, кто-то фыркает на жажду наживы, а вот где её не хватало... - SciFi(25.02.2023 18:37)
- Ну, переписал, имея оригинальную документацию:-) А я с вами в МФТИ в 1984 г не встречался? - Visitor(25.02.2023 18:46)
- Вот вот, я проц дековский на ФПГА написал, а толку? Все богаче
стали? - Visitor(25.02.2023 18:35)
- ранее писал на basic, и сам интертрепатор тоже сам писал. на разных
платформах. и паскале-подобный компилятор тоже писал. тогда это
было модно)) все писали, и я писал. ээээхххх.... - Alex68(25.02.2023 16:36)
- Сильнее всего ухудшает читабельность не goto, и не >25 строк
функции, а избыточные абстракции и выпендреж. Cкpипaч(79 знак., 25.02.2023 16:17)
- ширина двух задниц равна бочке с кырасином и кыслородом. таки да. Alex68(97 знак., 25.02.2023 15:57)
- Ширина лошадиной задницы, помним. Cкpипaч(63 знак., 25.02.2023 15:37)
- Функция или подпрограмма должна укладываться в один экран - 25
строк, еще со времен
- Функция должна быть короткой, как тост, как выстрел, иначе времени
на отдых не останется. - Visitor(25.02.2023 11:04)
- Ага, многозадачку на проце только так и можно сделать, из прерываний в свитч только флаги завершения и результаты отсчетов АЦП. Никаких циклов кроме главного и единственного. А со свитчами не сразу дошло, что для каждого автомата задачи можно свой разбор сделать, в одном запутано выходит. - Visitor(25.02.2023 11:01)
- А так? Использованы protothreads(switch). Разнесен вход в состояние
(goto) и возврат из планировщика (PT_WAIT). Между меткой goto и
PT_WAIT - код, который выполняется один раз, при входе в состояние. Cкpипaч(49 знак., 25.02.2023 11:35)