|
||||
Микроконтроллеры | ||||
| Новая тема Правила | Поиск »» Архив |
| •Вернуться в конференцию •Топик полностью |
|
Vladimir Ljaschko (16.07.2009 14:29, просмотров: 7857)
Вопрос по добавлению состояния в машину состояний. Состояние описывается номером stMY_STATE, обработчиком fMyState(), и именем nm_my_state="my state_name". Может кто видел макросы, чтобы препроцессором автоматически сгенерировались enum для номеров, массивы функций и имен с инициализацией? Фантазии заказчика в части UI фонтанируют, устал. Хочу, чтобы было так STATE(stWaiting, fWaiting, "I'm waiting"); STATE(stLowPower,fLowPower,"Power is low!"); etc |
Итак, итоги. Проблема пива сильно преувеличена, все прозрачно. (+)- Vladimir Ljaschko(3854 байт, 19.07.2009 21:26)
Я в, похоже, таком направлении начинал двигаться, но решил, что если вдруг пиво пить перестану - то потом сам не разберусь (т.к. для разбирательства нужна будет та же доза пива, что при написании была). Поскольку пиво я уже скоро десять лет как (+)- ReAl(2060 байт, 17.07.2009 13:30)
Для автоматического назначения номера использую макрос __LINE__. Если будете описывать в одном файле, то номера, вероятно, получатся уникальными (если, конечно, по 10 макросов в одной строке не писать;)) - Vit(16.07.2009 20:21)
На макросах намного дальше того, что по первой ссылке, не уедешь. Мне достаточно подобных вещей, а если навороченнее - я бы cog посоветовал - набирать в cog-"комментариях" списки состояний с аттрибутами и разворачивать в нужное количество нужных (+)- ReAl(98 байт, 16.07.2009 15:16, ссылка, ссылка)
Спасибо за ссылки. Проблема в том, что состояний около 100 и проследить правильность перечисления по варианту 2 трудно. В варианте 1 свои недостатки, для быстрых процессов в прерываниях может оказаться критично тратить время на дополнительную (+)- Vladimir Ljaschko(119 байт, 16.07.2009 17:03)
По варианту 2 правильность перечисления поддерживается автоматически ("В обеих порядок определяется ТОЛЬКО enum-ом" - т.е. во втором хоть в массиве только указатели на функции, но они в правильном порядке независимо от порядка указания их в исходном (+)- ReAl(374 байт, 16.07.2009 18:03)
Вот так: (+)- ReAl(1041 байт, 16.07.2009 18:51)
Ну не только COG-ом. Вот так генерируется описание переменных для доступа по протоколу - путем множественного включения файла описания при действии различных условий. (+)- Vladimir Ljaschko(1700 байт, 16.07.2009 20:13)
Интересная идея со множественным включением. Спасибо, при случае возьму на вооружение. - vmp(17.07.2009 08:59)
Тьху, промахнулся. Читать выше - ReAl(16.07.2009 23:18, ссылка)|
|
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер |
|