-
- Касаемо энкодера: Только не жадничайте на угловых величинах... при вращениях оного (выбор пунктов меню/параметров). На своём 3D-принтере [PRUSA-I3] (да и на других)китайских- больная тема. Частенько при нажатии на энкодер ускользает в +/- один SERHIO(55 знак., 27.04.2017 17:24)
- WiFi точка на базе ESP за $5, вебморда, смартфон. Дешево, надежно и практично. - LightElf(21.04.2017 17:37)
- Нет, энкодер нельзя заменить кнопками. Эргономически -- ничего общего. Кнопками выставлять трёхзначные числа нужно по разряду (и то секса много), а энкодер, на основании скорости вращения -- ставит за раз. Николай Коровин(151 знак., 21.04.2017 14:40)
- Энкодер как замена всех кнопок - это злейшее зло. Энкодер в кол-ве N штук хорош на осциллографе. И то, когда нужно накручивать глубину усреднения, гамно получается, ибо там удобнее были бы кнопки +/-. Или просто дело в том, что у этого энкодера SciFi(13 знак., 21.04.2017 15:23)
- Без щелчков — вообще не энкодер :) А, да, есть порог задержки между соседними щелчками, после которого мы начинаем прибавлять не 1, а 2, 5, 10 и т. д., т. е. резкий поворот считаем за грубую подстройку. Считается он не по одной паре, конечно, а на Николай Коровин(914 знак., 21.04.2017 20:43 - 20:59)
- А ещё бывает энкодер - кнопка. Вот набираем IP-адрес, сначала нули. 192.. тык! 168 тык! 12 тык! 147 тык! окно закрылось, в нём "192.167.12.146" что такое?! а это когда "тык" он иногда на 1 зубчик перескакивает :) Ничего, по новой введём. - maik-vs(21.04.2017 17:17)
- Неправильно сделан. Влево-вправо по полю ввода — перемещение курсора, тык — число стало контрастным, влево-вправо — изменили, тык — снова бегает курсор. Там, где энкодер, «последовательной логике» делать нечего. Он «идеологически многопозиционен». - Николай Коровин(21.04.2017 20:16)
- Идеологически многопозиционен? Нет ли тут гей-пропаганды? - SciFi(21.04.2017 20:23)
- :-D Это был пятничный ответ 80-го уровня :) - Николай Коровин(21.04.2017 20:30)
- Могу и первого уровня. Пропаганда гетеро и вообще здорового образа жизни :-) - SciFi(21.04.2017 20:35, картинка)
- Basic friday post :) - Николай Коровин(21.04.2017 20:57)
- Могу и первого уровня. Пропаганда гетеро и вообще здорового образа жизни :-) - SciFi(21.04.2017 20:35, картинка)
- :-D Это был пятничный ответ 80-го уровня :) - Николай Коровин(21.04.2017 20:30)
- Идеологически многопозиционен? Нет ли тут гей-пропаганды? - SciFi(21.04.2017 20:23)
- Можно просто сделать одну кнопку и заставить всех учить морзянку. - SciFi(21.04.2017 17:21)
- видел приборы с одной кнопкой, она же и кнопка вкл/выкл )) без инструкции не понять ничего ) - 0men(21.04.2017 18:55)
- Неправильно сделан. Влево-вправо по полю ввода — перемещение курсора, тык — число стало контрастным, влево-вправо — изменили, тык — снова бегает курсор. Там, где энкодер, «последовательной логике» делать нечего. Он «идеологически многопозиционен». - Николай Коровин(21.04.2017 20:16)
- Фигня, автоповтор плюс регулируемое приращение творят чудеса. С энкодером точно те же проблемы. - vllv(21.04.2017 15:19)
- Так-то оно так, но определить скорость тоже не бит поменять; с кнопками проще опрос. - Dingo(21.04.2017 14:45)
- Энкодер как замена всех кнопок - это злейшее зло. Энкодер в кол-ве N штук хорош на осциллографе. И то, когда нужно накручивать глубину усреднения, гамно получается, ибо там удобнее были бы кнопки +/-. Или просто дело в том, что у этого энкодера SciFi(13 знак., 21.04.2017 15:23)
- Дык эта... Массив указателей на функции, ходишь по массиву, вызываешь функции всякия... :) - Звероящер(21.04.2017 14:25)
- Спрошу здесь, потому как связанно, хоть топик может и не совсем тот. Как попросить компилятор исполнить функцию по указателю? Dingo(1264 знак., 27.04.2017 15:27 - 15:31)
- Кстати, немного кунг фу (исправил ачепятку) :-) SciFi(115 знак., 27.04.2017 16:12 - 16:40)
- Не понял. Вижу только, что вызывается функция. Можно по буквам, как я чуть выше? - Dingo(27.04.2017 16:23)
- Чуть выше фигня какая-то написана. SciFi(664 знак., 27.04.2017 16:28)
- гад какой-то - vllv(27.04.2017 16:19)
- Не понял. Вижу только, что вызывается функция. Можно по буквам, как я чуть выше? - Dingo(27.04.2017 16:23)
- В букваре раздел 5.11 "Указатели на функции" --> - SciFi(27.04.2017 15:53, ссылка)
- Прочитал. Не увидел ответа. Если v_char = *((char *)p_int); привести указатель на int к указателю на char, то вопрос в том, как void* трактовать как указатель на функцию? Dingo(162 знак., 27.04.2017 15:59)
- Хм, посмотрел у себя, тип указателя в массиве для функций с параметрами и без параметров одинаковый vllv(299 знак., 27.04.2017 16:12)
- Не указывать типы аргументов - это тоже фу. - SciFi(27.04.2017 16:13)
- работает же :) - vllv(27.04.2017 16:14)
- Щас придёт будённовец и будет жечь. - SciFi(27.04.2017 16:15)
- работает же :) - vllv(27.04.2017 16:14)
- Не указывать типы аргументов - это тоже фу. - SciFi(27.04.2017 16:13)
- А вот не надо переменной типа void* присваивать значение указателя на функции (т.е. адрес функции). Просто не надо. Это можно сделать с оговорками, но это фу. Если указатель на функцию может содержать адреса функций с разными типами аргументов SciFi(321 знак., 27.04.2017 16:05 - 16:07)
- У меня там соседнее поле хранит, что же именно в этот указатель записали. Так что не так уж всё запущено. А ещё это поле может принимать значение указателя на другую такую структуру. Фсё, кидайте тапками в меня. - Dingo(27.04.2017 16:21)
- вырыть себе несколько могил и сделать из них объединение, а потом объединения запихнуть в массив :) Интересно, у компилятора есть шанс разобраться? - vllv(27.04.2017 16:07)
- Хм, посмотрел у себя, тип указателя в массиве для функций с параметрами и без параметров одинаковый vllv(299 знак., 27.04.2017 16:12)
- Прочитал. Не увидел ответа. Если v_char = *((char *)p_int); привести указатель на int к указателю на char, то вопрос в том, как void* трактовать как указатель на функцию? Dingo(162 знак., 27.04.2017 15:59)
- Кстати, немного кунг фу (исправил ачепятку) :-) SciFi(115 знак., 27.04.2017 16:12 - 16:40)
- "Дьявол кроется в мелочах"(с) - пример тому разница моего и SkiFi подходов. - Dingo(21.04.2017 14:43)
- Спрошу здесь, потому как связанно, хоть топик может и не совсем тот. Как попросить компилятор исполнить функцию по указателю? Dingo(1264 знак., 27.04.2017 15:27 - 15:31)
- Не надо валить в кучу концепцию и реализацию. У меня есть дисплейчик 2.2'', слева и справа по 3 кнопки. Напротив них рисую пиктограммы "назад, редактировать, ввести, отменить, курсор влево-вправо, плюс-минус, курсор вверх-вних" в зависимости от SciFi(316 знак., 21.04.2017 13:03)
- А слабо прозрачные рельефные кнопки над дисплеем сделать? :) Тачскрин с кликом :) - Николай Коровин(21.04.2017 21:03)
- Поясню ещё немного. Сейчас меню для текстового дисплея масштаба 1602/2004 или PCD8544( "Nokia 5110", 84*48 точек) в связке с дохленьким контроллером масштаба stm8 или AVR. С другой стороны, если будет необходимость работать с STM32, то не хотелось Dingo(118 знак., 21.04.2017 15:05)
- Редактировать - в каком диапазоне и с каким шагом? Откуда в вашем случае меню знает какой параметро менять и в каком диапазоне(с каким шагом)? А вот одной кнопке разные действия - умно, не подумал. Хоть и в сотовом каждый день Dingo(95 знак., 21.04.2017 13:09)
- Если редактировать IP адрес - то как бы понятно. У числового параметра шаг определяется положением курсора, ну и насыщение есть, конечно. Ситуации, когда шаг не равен единице в соответствующем разряде, у меня не было, но и её можно обыграть. - SciFi(21.04.2017 13:12)
- Не совсем понятно, как можно при моей версии редактирование строчных параметров завернуть. Не часто нужны, но случается: идентификатор какой-нить для железки в сети, например. И всё равно это можно передать через enum события, вот только где их Dingo(91 знак., 21.04.2017 14:42)
- иногда делаю как SciFi, иногда (когда экран позволяет), алфавит на дисплее, бегаем по буквам и спец символам - 0men(21.04.2017 14:55)
- Чего там придумывать? Делаем текстовый редактор из того, что есть. Кнопки курсор туда-сюда, буква плюс-минус, backspace или delete, insert, cancel, enter. Получилось 8 штук. Можно убрать 2 штуки: курсор туда, буква минус, но тогда редактор будет SciFi(75 знак., 21.04.2017 14:46 - 14:53)
- Хорошо, по вашему примеру: был параметр 99, мы увеличили на 1. теперь надо 3 символа, а не два. Или было 10, уменьшили - теперь один знак. В вашем подходе как сделано? И ещё спрошу: в какой момент функционал получает значения из меню? Dingo(304 знак., 21.04.2017 13:18 - 13:29)
- Нулями слева не дополняю. Курсор можно выкатить влево под пробел, выглядит вполне нормально. Есть оба варианта: значение применяется при каждом изменении цифр или только при нажатии кнопки ввода, в зависимости от того, что удобнее в данном случае. SciFi(659 знак., 21.04.2017 13:27)
- Не-не-не, не то. Вот вы решили
менятьпередавать параметр при каждом изменении. Изменили на 1. Как функционал, не относящийся к меню узнает о новом значении? Откуда меню знает, какой из set() дёргать? Если RTOS - ждёте, пока задача Dingo(144 знак., 21.04.2017 13:38)- Для редактирования каждого параметра создаётся своя функция, которая вызывается для отработки событий меню типа SHOW_VALUE, START_EDIT, MODIFY, ENTER, CANCEL. У меня нет RTOS, поэтому да, Main Loop. SciFi(240 знак., 21.04.2017 13:47 - 13:59)
- Хм, у меня тоже почти так. Массивы структур меню потихоньку вымерли. - vllv(21.04.2017 15:08)
- Связные списки дают больше гибкости. Пытаться подстраивать логику работы устройства под упрощённую реализацию (массив или любой иное упрощение) - это тупиковый путь, приводящий к рождению уродцев. - SciFi(21.04.2017 15:12)
- Да, сцуко заказчик всегда заставляет делать не так, как удобно программисту :) - vllv(21.04.2017 15:16)
- Бывает и так, что программисту яиса мешают, тогда совсем тяжко :-) - SciFi(21.04.2017 15:17)
- Да, сцуко заказчик всегда заставляет делать не так, как удобно программисту :) - vllv(21.04.2017 15:16)
- Связные списки дают больше гибкости. Пытаться подстраивать логику работы устройства под упрощённую реализацию (массив или любой иное упрощение) - это тупиковый путь, приводящий к рождению уродцев. - SciFi(21.04.2017 15:12)
- а что такое длительный процесс? пример? - 0men(21.04.2017 14:20)
- ПИД-регулятор. Сканирование спектра. Подъём груза лебёдкой. Да всё, что угодно. - SciFi(21.04.2017 14:23)
- под него какой то фрейм времени выделяется? или там находимся пока не завершится? У меня просто тоже много приборов с меню сделано по похожей схеме, интересно, как реализовано у других ) - 0men(21.04.2017 14:45)
- У других делается банальный автомат состояний, чтобы порвать длинное на короткое. - vllv(21.04.2017 15:17)
- Далаю так, чтобы на один вызов poll() слишком много времени не уходило. Тогда тормозов нет. До сих пор жёсткие ограничения по времени делать не приходилось, поэтому всё делается легко и непринуждённо. SciFi(130 знак., 21.04.2017 14:49)
- под него какой то фрейм времени выделяется? или там находимся пока не завершится? У меня просто тоже много приборов с меню сделано по похожей схеме, интересно, как реализовано у других ) - 0men(21.04.2017 14:45)
- ПИД-регулятор. Сканирование спектра. Подъём груза лебёдкой. Да всё, что угодно. - SciFi(21.04.2017 14:23)
- Хм, у меня тоже почти так. Массивы структур меню потихоньку вымерли. - vllv(21.04.2017 15:08)
- Для редактирования каждого параметра создаётся своя функция, которая вызывается для отработки событий меню типа SHOW_VALUE, START_EDIT, MODIFY, ENTER, CANCEL. У меня нет RTOS, поэтому да, Main Loop. SciFi(240 знак., 21.04.2017 13:47 - 13:59)
- Не-не-не, не то. Вот вы решили
- Нулями слева не дополняю. Курсор можно выкатить влево под пробел, выглядит вполне нормально. Есть оба варианта: значение применяется при каждом изменении цифр или только при нажатии кнопки ввода, в зависимости от того, что удобнее в данном случае. SciFi(659 знак., 21.04.2017 13:27)
- Не совсем понятно, как можно при моей версии редактирование строчных параметров завернуть. Не часто нужны, но случается: идентификатор какой-нить для железки в сети, например. И всё равно это можно передать через enum события, вот только где их Dingo(91 знак., 21.04.2017 14:42)
- Если редактировать IP адрес - то как бы понятно. У числового параметра шаг определяется положением курсора, ну и насыщение есть, конечно. Ситуации, когда шаг не равен единице в соответствующем разряде, у меня не было, но и её можно обыграть. - SciFi(21.04.2017 13:12)