-
- Вопрос по механизму сообщений. Навскидку надумал вот как: формат 2 байта. Номер получателя (0-код сообщения для всех), номер сообщения. Есть но, это числовые сообщения, толкуемые однозначно, и никак иначе. Бывают ситуации, нужно отправить флаги. mazur(201 знак., 11.09.2011 00:16)
- Сколько байт-все равно,это не самая большая проблема. Для сообщений надо обеспечить сохранность ,последовательность ,атомарность. У Вас очередь сообщений предполагается? Если да, то ею нужно рулить, если нет - неободимо решить вопрос надежной Хитрый Китаец(349 знак., 11.09.2011 13:02)
- Проще взять готовую ОС или что-то в этом роде. Самодельные решения будешь годами избавлять от ошибок и прочих детских болезней. И, кроме того, неплохо бы ознакомиться с современным состоянием науки и техники в данном вопросе путём изучения fk0(12 знак., 11.09.2011 12:29)
- То, что видим на экране, и какая производится реакция на действия оператора, однозначно связано с состоянием автомата (у меня это индекс меню). Если нужно по внешнему сигналу выводить какую-то левую информацию по событию (например, сообщение об Лeoнид Ивaнoвич(239 знак., 10.09.2011 23:21)
- Мне чего-то не хватает. Не могу понять что считать состоянием автомата в обработке меню, а что свести в макрос или подпрограмму. Расскажите, пожалуйста как у вас работает меню. - mazur(14.09.2011 21:54)
- Пример выдернул из генератора PG-872. Лeoнид Ивaнoвич(3237 знак., 15.09.2011 10:54)
- Я не сразу обратил внимание на слова Vladimir-a. FPGA можно как-то перепрограммировать по ходу работы девайса? Расскажите мне об этом. - mazur(15.09.2011 18:54)
- Можно, но во время конфигурирования она не функционирует. - Лeoнид Ивaнoвич(15.09.2011 21:27)
- Переконфигуруется сама FPGA или ее контроллер перепрошивает? - mazur(15.09.2011 21:29)
- Контроллер её переконфигурирует. - Лeoнид Ивaнoвич(16.09.2011 10:35)
- Переконфигуруется сама FPGA или ее контроллер перепрошивает? - mazur(15.09.2011 21:29)
- Можно, но во время конфигурирования она не функционирует. - Лeoнид Ивaнoвич(15.09.2011 21:27)
- Я не сразу обратил внимание на слова Vladimir-a. FPGA можно как-то перепрограммировать по ходу работы девайса? Расскажите мне об этом. - mazur(15.09.2011 18:54)
- Пример выдернул из генератора PG-872. Лeoнид Ивaнoвич(3237 знак., 15.09.2011 10:54)
- Мне чего-то не хватает. Не могу понять что считать состоянием автомата в обработке меню, а что свести в макрос или подпрограмму. Расскажите, пожалуйста как у вас работает меню. - mazur(14.09.2011 21:54)
- Разъясняем. Обработчик меню 1) выводит информацию, относящуюся к текущему состоянию автомата и поясняющему его 2)принимает события нажатия на клавиши и реагирует соответствующим образом. - Vladimir Ljaschko(10.09.2011 23:11)
- Мне чего-то не хватает. Не могу понять что считать состоянием автомата в обработке меню, а что свести в макрос или подпрограмму. Расскажите, пожалуйста как у вас работает меню. - mazur(14.09.2011 21:54)
- Не понял вопрос про "свести макрос", но у меня меню работает так. Vladimir Ljaschko(1849 знак., 14.09.2011 22:41)
- Получается что разрешение опроса кнопок идет из обработчика меню? - mazur(17.09.2011 09:31)
- Нет, флаги нажатых кнопок генерируются обработчиком клавиатуры в прерывании независимо. Затем Vladimir Ljaschko(596 знак., 17.09.2011 12:35)
- Блин, опять что-то не так делаю? Я сделал так: практически все вынес в в основной цикл. Соответственно, обработку программных таймеров, опрос кнопок. Тип клавиш\порты задаются дефайнами. Нажатие любой-ых клавиш-и, выставляется флаг (этот флаг mazur(344 знак., 17.09.2011 13:18)
- Спокойнее ;) Vladimir Ljaschko(397 знак., 17.09.2011 15:43)
- Подвешивать основной цикл на секунду - это неправильно. Такие длительные операции нужно разбивать на кванты. Нормальный период основного цикла - единицы..десятки мс. Время подавления дребезга обычно больше. Лeoнид Ивaнoвич(258 знак., 18.09.2011 12:05)
- Все верно, но я предпочитаю иметь возможность "грязного хака", чем не иметь. - Vladimir Ljaschko(18.09.2011 16:08)
- Странно, мы разве абсолютно по разному смотрим на подавление дребезга? И при чем здесь длина основного цикла? Хотя, может я чего и не знаю. По подавлению дребезга - Есть нажатие, выставили таймер, изменили состояние обработчика кнопок. При mazur(202 знак., 17.09.2011 18:55)
- Если основной цикл длинный, то можно пропустить следующее нажатие, посчитав его за длиииительный дребезг. Пользователь такому никак не обрадуется. Подавление дребезга не самоцель, а способ более точной идентификации нажатий клавиш пользователем. rezident(68 знак., 17.09.2011 19:19)
- Понял. - mazur(17.09.2011 19:22)
- и без всяких там буферов: реакция должна быть незаметной для пользователя (менее сотни мсек), а если это в какой-то момент невозможно - пользователь должен об этом однозначно знать koyodza(212 знак., 17.09.2011 19:31)
- +1. Усилия нужно тратить не на создание буфера, а на исключение тормозов при обработке нажатий. - Лeoнид Ивaнoвич(18.09.2011 12:06)
- У профессионалов есть функция для насильной чистки буфера в таких ситуациях. - fk0(17.09.2011 21:40)
- только они ею не пользуются :=P :=D - koyodza(18.09.2011 10:57)
- и без всяких там буферов: реакция должна быть незаметной для пользователя (менее сотни мсек), а если это в какой-то момент невозможно - пользователь должен об этом однозначно знать koyodza(212 знак., 17.09.2011 19:31)
- Понял. - mazur(17.09.2011 19:22)
- Если основной цикл длинный, то можно пропустить следующее нажатие, посчитав его за длиииительный дребезг. Пользователь такому никак не обрадуется. Подавление дребезга не самоцель, а способ более точной идентификации нажатий клавиш пользователем. rezident(68 знак., 17.09.2011 19:19)
- Подвешивать основной цикл на секунду - это неправильно. Такие длительные операции нужно разбивать на кванты. Нормальный период основного цикла - единицы..десятки мс. Время подавления дребезга обычно больше. Лeoнид Ивaнoвич(258 знак., 18.09.2011 12:05)
- Сто-о-оп! Если сообщение то же, то оно не записывается.... Нужно проверить... - mazur(17.09.2011 13:20)
- Спокойнее ;) Vladimir Ljaschko(397 знак., 17.09.2011 15:43)
- Блин, опять что-то не так делаю? Я сделал так: практически все вынес в в основной цикл. Соответственно, обработку программных таймеров, опрос кнопок. Тип клавиш\порты задаются дефайнами. Нажатие любой-ых клавиш-и, выставляется флаг (этот флаг mazur(344 знак., 17.09.2011 13:18)
- Нет, флаги нажатых кнопок генерируются обработчиком клавиатуры в прерывании независимо. Затем Vladimir Ljaschko(596 знак., 17.09.2011 12:35)
- Да, забыл спросить. Автоповтор разве отличен от кода клавиши? У меня делается так, если дефайном включены удержание и автоповтор, то из состояния автоповтора долбит сообщением-кодом удерживаемой клавиши. Сочетания клавиш, естесственно, другие mazur(110 знак., 15.09.2011 12:03)
- Нет, автоповтор совпадает. В каком-то проекте были другие коды, потому что величина инкремента зависела от времени удержания, и было динамическое разрешение автоповтора. Сочетания - коды другие. - Vladimir Ljaschko(15.09.2011 12:32)
- У меня при автоповторе к коду добавляется единичный бит где-то в старших разрядах. При желании его можно замаскировать, тогда код отличаться не будет. Лeoнид Ивaнoвич(456 знак., 15.09.2011 12:16)
- Не совсем понятно это: mazur(922 знак., 15.09.2011 11:16)
- Ответ Vladimir Ljaschko(1326 знак., 15.09.2011 11:49)
- Ну да, 1 автоматом намного проще рулить, чем 50-ю. :))) - mazur(15.09.2011 12:07)
- А вы не пытались "сверху - вниз" проектировать? - Скрипач(15.09.2011 16:40)
- Я помню -> Может что-то еще и не так делаю. Но пробую :) - mazur(15.09.2011 16:45, ссылка)
- Так откуда тогда мысли о "один автомат лучше чем 50"?! Автоматов должно быть ровно столько, сколько объектов в реальном мире, нет? - Скрипач(15.09.2011 16:51)
- Обязательно ли объект-автомат? - mazur(15.09.2011 17:06)
- Нет конечно, может быть: объект - несколько автоматов. - =AlexD=(15.09.2011 17:12)
- Разделяй и властвуй (C) - fk0(15.09.2011 19:15)
- зависит от особенностей самого объекта - koyodza(15.09.2011 17:21)
- Конечно, но я не помню других раскладов. Разве что автомат состоящий из нескольких подчиненных-спрятанных автоматов. - Скрипач(15.09.2011 17:27)
- типа того. Хотя тут уже можно говорить и о том, что это не совсем один объект, а несколько взаимосвязанных - koyodza(15.09.2011 17:59)
- Конечно, но я не помню других раскладов. Разве что автомат состоящий из нескольких подчиненных-спрятанных автоматов. - Скрипач(15.09.2011 17:27)
- Нет конечно, может быть: объект - несколько автоматов. - =AlexD=(15.09.2011 17:12)
- Обязательно ли объект-автомат? - mazur(15.09.2011 17:06)
- Так откуда тогда мысли о "один автомат лучше чем 50"?! Автоматов должно быть ровно столько, сколько объектов в реальном мире, нет? - Скрипач(15.09.2011 16:51)
- Я помню -> Может что-то еще и не так делаю. Но пробую :) - mazur(15.09.2011 16:45, ссылка)
- Это заблуждение. - =AlexD=(15.09.2011 14:10)
- Я все думаю, почему 50-100 автоматов? Это неприятие флагов\неумение их готовить или действительно необходимость?.... - mazur(15.09.2011 12:41)
- Я спрашивал автора 100 автоматов, но не получил ответа. В моих приборах реальных автоматов состояний с переменной состояния до 15. Поддержку функции с одним -двумя флагами/счетчиками, функционирующую без воздействия извне(ну, например, усреднение Vladimir Ljaschko(163 знак., 15.09.2011 13:03)
- Ну вот есть у Вас Ip-стек или USB в приборе, вы будете все их состояния в 1 автомат упихивать? Удачи! - she_(15.09.2011 14:20, )
- А у меня они есть? ;) - Vladimir Ljaschko(15.09.2011 19:21)
- Не знаю. Интересовались, откуда может взяться 50-100 автоматов - пожалуйста. - she_(15.09.2011 19:25, )
- А у меня они есть? ;) - Vladimir Ljaschko(15.09.2011 19:21)
- Тут больше жонглирование словами. Как назвать - автомат, процесс, задача, от этого суть не меняется. Я обычно называю "процесс" (от одноименного произведения Франца Кафки :) Лeoнид Ивaнoвич(2418 знак., 15.09.2011 13:30)
- И у меня есть устройство для промывки трубопроводов! Для пива в барах ;) Да, я тоже называю процессами, но тут тут вопрос был именно по особенностям реализации. - Vladimir Ljaschko(15.09.2011 13:38)
- У меня, к сожалению, не пиво, а всего лишь молоко :) - Лeoнид Ивaнoвич(15.09.2011 13:43)
- И у меня есть устройство для промывки трубопроводов! Для пива в барах ;) Да, я тоже называю процессами, но тут тут вопрос был именно по особенностям реализации. - Vladimir Ljaschko(15.09.2011 13:38)
- Ну вот есть у Вас Ip-стек или USB в приборе, вы будете все их состояния в 1 автомат упихивать? Удачи! - she_(15.09.2011 14:20, )
- Я спрашивал автора 100 автоматов, но не получил ответа. В моих приборах реальных автоматов состояний с переменной состояния до 15. Поддержку функции с одним -двумя флагами/счетчиками, функционирующую без воздействия извне(ну, например, усреднение Vladimir Ljaschko(163 знак., 15.09.2011 13:03)
- С другой стороны, на этот автомат "нанизан" весь проект, и я долго выбирал, как удобнее это все записывать и поддерживать. Остановился на препроцессоре. - Vladimir Ljaschko(15.09.2011 12:39)
- А вы не пытались "сверху - вниз" проектировать? - Скрипач(15.09.2011 16:40)
- Ну да, 1 автоматом намного проще рулить, чем 50-ю. :))) - mazur(15.09.2011 12:07)
- существуют указатели - koyodza(15.09.2011 11:19)
- Ответ Vladimir Ljaschko(1326 знак., 15.09.2011 11:49)
- А можно пример меню с редактируемыми параметрами для знакосинтезирующего ЖКИ? Все равно некоторые вопросы остались. Только сформулировать пока их не могу :) - mazur(15.09.2011 09:59)
- Дык ты же на С не читаешь? И у меня больше специфической функциональности. И при чем тут ЖКИ? Функции вывода в дисплей могут быть, могут не быть, это второстепенно. Vladimir Ljaschko(3549 знак., 15.09.2011 10:28)
- Получается что разрешение опроса кнопок идет из обработчика меню? - mazur(17.09.2011 09:31)
- Не понял вопрос про "свести макрос", но у меня меню работает так. Vladimir Ljaschko(1849 знак., 14.09.2011 22:41)
- Мне чего-то не хватает. Не могу понять что считать состоянием автомата в обработке меню, а что свести в макрос или подпрограмму. Расскажите, пожалуйста как у вас работает меню. - mazur(14.09.2011 21:54)
- Вопрос по механизму сообщений. Навскидку надумал вот как: формат 2 байта. Номер получателя (0-код сообщения для всех), номер сообщения. Есть но, это числовые сообщения, толкуемые однозначно, и никак иначе. Бывают ситуации, нужно отправить флаги. mazur(201 знак., 11.09.2011 00:16)