Это да, но, с моей точки зрения, реализация этого функционала как минимум не сложнее, чем все что обсуждалось выше. Нужен 1 байт (время, прошедшее с момента предыдущего "клика" энкодера) памяти и 2 IF-а (первый - не инкрементировать время если равно 255, второй - собственно определить значение шага по прошедшему времени). Кроме того, в этом случае можно отказаться от индикации шага и т.п., так что скорее всего места во флеше останеться больше, чем в других вариантах...
Можно будет попробовать на практике. Но мне не очень нравятся операции с нажатием ручки энкодера, это неудобно (нужно менять положение пальцев, обычно они берут ручку так, как удобней крутить, а не нажимать). Поэтому ставлю на нажатие только редкие функции. В данном проекте короткое нажатие - это вход в меню (нужно раз в год), длинное - блокировка управления (тоже вряд ли кто-то будет этим пользоваться). Еще не нравится в данном предложении отсутствие постоянной индикации шага. БП - опасная штука, его поведение должно быть предсказуемым. А так можно нарваться на ситуацию, когда небольшой поворот ручки сразу даст приращение несколько вольт, и всё сгорит. Тогда нужно мигать редактируемым разрядом, в итоге приходим к классической форме ввода напряжения, которую используют все. Но она требует двух дополнительных кнопок - стрелок выбора разрядов.
victor.s писал(а):
почему бы не выбирать шаг автоматом взависимости от скорости вращения энкодера?
Так сделано у меня в плате управления на ATmega8 для PSL-2401. Как-то не очень. Хотелось бы более предсказуемого поведения.
victor.s писал(а):
На той же микроволновке нет проблем\неудобств выставить как 10 секунд так и 10 минут.
Встречал только микроволновки, где шаг зависит от заданного значения времени. Это довольно удобно, как вариант я выше предлагал переменный шаг.
victor.s писал(а):
шаг 0.01 применять при ОЧЕНЬ медленном вращении
Пробовал делать. Краевые эффекты мешают. В конце поворота скорость ручки падает, в результате на дисплее появляется не круглое значение, а с "хвостиком". Пробовал и так, и эдак - не нравится.
Это точно. Проверил, поставил на генераторе шаг 0.1 Гц и с 3.3 Гц до 30 Гц крутил 15 секунд С одной стороны, 0.1 В - самый ходовой шаг, хотелось бы его сделать основным. Получается, вместе с FINE нужен еще и COARSE. На как это удобней сделать, пока непонятно.
Может копнуть в сторону интелектуальности валкодера. Быстрее крутишь больше шаг.
_________________ Мы так далеко откатились назад, что прошлое стало будущим.
в итоге приходим к классической форме ввода напряжения, которую используют все.
Наверное они тоже пробовали разные варианты и остановились на этом. Я тоже экспериментировал с вращением. Остановился с приращением шага на октаву в начале, потом на 1/4 и 1/8 октавы при совсем крупном шаге. Но я не ставил цели попасть в нужный шаг. С увеличением в 2-4-8 и тд раз тоже экспериментировал - не понравилось. Слишком быстро увеличивается - не успеваешь среагировать. Можно рассмотреть вариант с одинарным и двойным нажатием как в винде. Двойное нажатие для укрупнения шага - что бы в случае промаха не было мучительно больно. Можно при нажатии кнопки выбирать шаг самим энкодером с отображением шага. Тогда можно выбрать более 3 шагов. Некруглые числа можно округлить до величины шага.
amv2000 писал(а):
Это Вы наверное за этот кусок кода говорите
Нет я имел ввиду analog watch dog. Этот кусок - чтобы блок не включался, когда питание не обеспечивает нормальную работу АЦП, а контроллер уже работает.
По поводу flash - может кончиться конечно. Но мне удалось впихнуть туда графики с автовыбором масштаба, часы + калибровка по 4 точкам, а не как здесь планируется по двум, + таймер на выключение. И все это в 14к - 2к заняты под настройки.
Могу предложить такой вариант из готового БП по гибкому изменению шага: по умолчанию энкодер настроен на минимальный шаг (0.01), далее по нажатию крутелки энкодера на экране начинает мигать цифра в разряде 0.1 и шаг при вращении тоже 0.1 и так по кругу нажимая кнопку или энкодер на экране установки значения поочередно начинают мигать цифры разряда показывая какой шаг выбран в итоге имеем 10, 1, 0.1 , 0.01 как по мне так реализация очень удобная для быстрой настройки любого значения. Мигание разряда прекращается по таймауту бездействия энкодера. Документ с описанием очень хорошо сделан. Это комерческий продукт по завершению? Почитал и сразу захотелось купить себе такой, по функционалу учтено все до мелочей....
по умолчанию энкодер настроен на минимальный шаг (0.01), далее по нажатию крутелки энкодера на экране начинает мигать цифра в разряде 0.1 и шаг при вращении тоже 0.1 и так по кругу нажимая кнопку или энкодер на экране установки значения поочередно начинают мигать цифры разряда показывая какой шаг выбран в итоге имеем 10, 1, 0.1 , 0.01 как по мне так реализация очень удобная для быстрой настройки любого значения. Мигание разряда прекращается по таймауту бездействия энкодера.
Мне тоже кажется такой вариант будет удобным. Вот только 10 убрать, оставить 1, 0,1 и 0,01, которые переключаются по кругу кнопкой Fine. Изменяемый разряд индикатора мигает - светодиод можно задействовать для других целей.
Наверное они тоже пробовали разные варианты и остановились на этом.
Уверен, что пробовали. Вариант хороший, но по уму нужны две кнопки. Хотя в Интернет читал на англоязычных форумах много критики в адрес такого редактирования в БП Agilent. Типа очень долго.
Galizin писал(а):
Я тоже экспериментировал с вращением. Остановился с приращением шага на октаву в начале, потом на 1/4 и 1/8 октавы при совсем крупном шаге. Но я не ставил цели попасть в нужный шаг. С увеличением в 2-4-8 и тд раз тоже экспериментировал - не понравилось.
Как по мне, так лучше без всяких адаптивных скоростей - все должно быть жестко. Потому что с детства нарушена координация движений. Пока лучший вариант - кнопка FINE перебирает три значения шага с индикацией светодиодом.
Galizin писал(а):
Можно при нажатии кнопки выбирать шаг самим энкодером с отображением шага.
Так у меня сделано в генераторах. Сам оцениваю решение как крайне неудобное. Хотя тогда хоть будет преемственность между приборами.
Starichok51 писал(а):
на ассемблере надо писать, а не на языке высокого уровня. на ассемблере код будет раз в 7-8 короче, чем на С.
Когда писал на ассемблере, тоже так думал. А теперь вижу, что разница будет не более 1.5 раза, кроме каких-то экзотических случаев. Одна cross-call оптимизация чего стоит. В ассемблере редко кто так станет извращаться из-за полной нечитабельности исходника. А тут исходник красивый, а в коде все переплетено для экономии объема.
AlexLimex писал(а):
в итоге имеем 10, 1, 0.1 , 0.01 как по мне так реализация очень удобная для быстрой настройки любого значения.
Как мне кажется, дело идет к еще одному меню:
На сегодня есть несколько годных алгоритмов работы энкодера: Adaptive Step, Auto Step, Fine-Normal-Coarse, Selected Step, плюс их вариации.
Но ведь тогда при регулировке будут появляться "некруглые" цифры, или нет?
Ну и что? Пробовал разные варианты, этот "на ощупь" показался самым удобным. По-умолчанию шаг 0,1В или 0,1А с увеличением в зависимости от скорости, в режиме точной настройки 1мВ или 1мА с тем же алгоритмом увеличения при высокой скорости.
Starichok51 писал(а):
на ассемблере надо писать, а не на языке высокого уровня. на ассемблере код будет раз в 7-8 короче, чем на С.
Не важно, на чём писать, важно как писать. Но на самом деле на ассемблере не то что крупные, даже средние (10-20 тыс. строк) проекты невозможно поддерживать, к тому же уже при нескольких тыс. строк часто оказывается обратный эффект: написанное на ассемблере оказывается менее эффективным и более громоздким. Имею опыт редизайна ПО изделий, сделанных и недоделанных на ассемблере другими людьми, про один вопиющий случай уже несколько раз рассказывал. Кое-что есть там http://caxapa.ru/217347.html http://caxapa.ru/210752.html
в 90-х - начале 2000-ых мне приходилось заниматься программированием 8051, и я прекрасно справлялся с текстом на ассемблере в несколько тысяч строк (длина файла - более 40 кБ, длина кода - около 8 кБ).
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Афигеть, наша контора под заказчиков так документацию делает но там свой отдел этим занимается, если только для себя то зачем вообще нужна эта документация да еще в таком идеально расписанном и оформленном виде?
А описание управляющей программы для компа не делали еще или я пропустил? Я имею ввиду картинки интерфейса с описанием. Сам сейчас занимаюсь переделкой китайской недоделки под себя. Хорошо что SDK нормально расписанное под мой блок питания есть. Планирую навыводить кучу графиков типа тока, напряжения, мощности, счетчик ампер часов для режима зарядки аккумулятора. Очень хотелось бы посмотреть ваш вариант и перенять от него лучшее.
я прекрасно справлялся с текстом на ассемблере в несколько тысяч строк (длина файла - более 40 кБ, длина кода - около 8 кБ).
Это мелкий проект, там всё проще.
AlexLimex писал(а):
Афигеть, наша контора под заказчиков так документацию делает но там свой отдел этим занимается, если только для себя то зачем вообще нужна эта документация да еще в таком идеально расписанном и оформленном виде?
У человека просто явно есть вагон лишнего времени, и видимо написание документации - это лучшее, что он смог придумать
Пара вопросов: 1. Аппаратная защита от перегрузки по току выхода начинает работать при 6А, также в блоке питания при его включении выполняется задержка (если не ошибаюсь от 1 ms до 99 ms) программной защиты от перегруза по току. Нет ли тут опасности тыкая на кнопку ON/OFF поджарить обмотки транса? 2. Как можно сравнить, сопоставить поведение этого источника питания в сравнении с аналогичными устройствами? Есть критерии общепринятые по которым можно судить о параметрах рассматриваемой схемы? В постах автора я слышал о осциллограммах выходного напряжения при переходе от 1/2 макс. тока на максимум, мелькали еще некоторые опыты в симуляторах, но это ведь синтетические и бессистемные тесты! Вот как например ЛИ и koyodza будут сравнивать динамич. характеристики их БП?
1. Аппаратная защита от перегрузки по току выхода начинает работать при 6А
Не понял мысль
Двоешник писал(а):
2. Как можно сравнить, сопоставить поведение этого источника питания в сравнении с аналогичными устройствами?
Да, динамические характеристики так и смотрят: реакция на скачок тока нагрузки. Очень интересно также смотреть переходный процесс при переключении CV/CC и обратно, у многих лабораторных источников с этим совсем плохо.
Двоешник писал(а):
Вот как например ЛИ и koyodza будут сравнивать динамич. характеристики их БП?
Скорее всего никак: сравнивать реально получаемые результаты на одном источнике с результатами симуляции другого конечно можно, только не очень интересно
1. Аппаратная защита от перегрузки по току выхода начинает работать при 6А
Не понял мысль
koyodza, я так понимаю, что у ЛИ R25-R28 + VT9 - своего рода аппаратная защита от перегрузки выхода БП по току. По моим расчетам защита эта начнет срабатывать при 6А протекающего тока.
Скорее всего никак: сравнивать реально получаемые результаты на одном источнике с результатами симуляции другого конечно можно, только не очень интересно
На сколько я понял ЛИ уже определился с дизайном панели БП? Если так то дело за малым и через месячишко -другой спаяет.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 81
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения