-
Sergey_r ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Так твое “фи” всегда подстегивает дальше подумать, но это не страшно, говори )))
Завтра силовой блок окультурю в коробок, и в воскресенье испытаю в живую, и на старой прошивке, и на подправленной, с совместными идеями. -
Счастливчик создана тема Ректификационная колонна "Прима". Часть 4. в форуме Ректификация 6 лет
Продолжение темы
-
Счастливчик ответил(а) на тему Ректификационная колонна "Прима". Часть 3 в форуме Ректификация 6 лет
Так, флуд заканчиваем. Что лучше, что хуже и нужна ли автоматика в других темах. Здесь обсуждение работы на Приме, а не потрещать обо всем на свете.
Сэмолюбу за “хероспирт” первое предупреждение.
-
Sergey_r создана тема Управление индукционной плитой Xiaomi Mijia Mi Home по WiFi в форуме Автоматика LuckyBox 6 лет
Собственно начал “ковырять” плиту Xiaomi Mijia Mi Home Induction Cooker.
Чем привлекательна именно она:
– плавное управление мощностью практически во всем диапазоне (исключение, первый шаг = 1% мощности). Если в цифрах, от 380 Вт и до максимума все плавно, это что я реально замерил
– встроенный WiFi
– протокол обмена miIO, который народ активно…[Читать далее] -
Dark ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Будем ждать нового кода, чтобы сказать свое радостное фи )
-
Dark ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Этот кусок, мне спокойно спать не дает. По хорошему, расчет delta/2 и /4 за проверку в две переменные закинуть, но тут палка о двух концах двумя переменными большой кусок памяти оттяпать можем, но зато чуток в if-ах скорость увеличим.
-
Sergey_r ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Я этот кусок уже переделал, выше пример привел, сдвиг вместо деления.
А так да, в чужом коде тяжко ковыряться )))
-
Dark ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Вот этот кусок
}
else if (Power > userPowerSet) {// Думаю от этого if можно избавиться
if (tmr1_pr <= (calcTMR1pr + delta)) tmr1_pr += delta;
else if (tmr1_pr <= (calcTMR1pr + delta/2)) tmr1_pr += delta/2;
else if (tmr1_pr <= (calcTMR1pr + delta/4)) tmr1_pr += delta/4;
else if (tmr1_pr < calcTMR1pr) tmr1_pr++;
}Думаю перед ним над…[Читать далее] -
Sergey_r ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Это не критично, т.к. выполняем только один раз при старте:
frecuence = 1 / (tmpCalcTMR1 * 0.000001); // считаем герцы для отображения
if (frecuence > 48 && frecuence < 52) frecuence = 50;
else if (frecuence > 58 && frecuence < 62) frecuence = 60Эти места:
else if (tmr1_pr <= (calcTMR1pr + delta/2)) tmr1_pr += delta/2;
else if (tmr1_pr <…[Читать далее] -
Dark ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Ну вот как то так конечно не море времени сокращается но все же.
Было:
frecuence = 1 / (tmpCalcTMR1 * 0.000001); // считаем герцы для отображения
if (frecuence > 48 && frecuence < 52) frecuence = 50;
else if (frecuence > 58 && frecuence < 62) frecuence = 60;Стало:
switch (frecuence) {
case 48:
case 49:
case 50:
case 51:
case 52:fre…[Читать далее] -
Dark ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Так кажется понял как предыдущий кусок кода на case перевести завтра на бросаю, а то с телефона сижу
-
Sergey_r ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Деление на 2 и на 4 переделаю на битовый сдвиг, чет только сейчас внимание обратил что ступил. Float тоже не проблема убрать. А там еще посмотрим.
-
Dark ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Порядка 5-6 мкс с каждой операции можно уменьшить.
Умножение и сложение где-то 0.7мкс деление и степень на порядок и ещё чуток больше.
Оптимально деление на умножение, степень тоже на умножение.
Ещё с float поиграться можно. Там где-то 10-11мкс на операции съэкономить можно.
По коду очень сложно от if избавиться. Но буду ещё смотреть.
-
Sergey_r ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Надо посмотреть набор команд на данный проц, возможно и стоит. Я просто в основном с PIC контроллерами работаю, там и умножение и деление на аппаратном уровне. Уходит 1 такт проца на умножение (16 бит * 16 бит) и 18 на деление (32 бита / 16 бит). А вот от переменных float постараюсь точно уйти в критичных местах. Я же просто торопился перед от…[Читать далее]
-
Dark ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Может быть тогда деление заменить на умножение, можно прилично по времени съэкономить)
-
Sergey_r ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
К сожалению мне до сих пор такты считать приходится, в автоматизации некоторых критичных ко времени процессов до сих пор ассемблерные вставки использую. Данный блок к данной категории кстати тоже отчасти относится, к примеру прерывание от INT0 и от TMR1 надо выполнить не более чем за 100 микросекунд, иначе будет не стабилизация мощности…[Читать далее]
-
Dark ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
Черт лет этак 15 назад ещё помнил количество тактов на разных командах, и код программ оптимизировал, сейчас уже не считаю (
-
Sergey_r ответил(а) на тему Запросы на функционал LuckyBox в форуме Автоматика LuckyBox 6 лет
Все улучшалки после силового блока и индукционки (купил сегодня Xiaomi Mijia Mi Home с WiFi и плавной регулировкой мощности для экспериментов, к стати у меня все надписи на английском а не иероглифами ))) ).
Это значит что колонна не смогла выйти на рабочий режим после очередного старт стопа за время равное времени стабилизации колонны.
-
Sergey_r ответил(а) на тему Проблемы при эксплуатации LuckyBox-3 в форуме Автоматика LuckyBox 6 лет
Значит завышена скорость отбора относительно подаваемой мощности. У меня на БК вообще 40 минут стоит время до применения уставки, т.к. БК иногда подстраивать под Т входящей в деф воды приходится. И в течении минимум 6 часов процесс стабилен, с учетом что более 15 литров СС не перегоняю. На РК как раз 10 минут оптимально.
p.s. Дат…[Читать далее]
-
Sergey_r ответил(а) на тему Управление мощностью ТЭНа в форуме Автоматика LuckyBox 6 лет
digitalRead(pinT) или digitalWrite(pinT, 0) это библиотечные функции и выполняют десятки лишних инструкций, они же написаны универсально для любого контроллера, т.е. не оптимально. Все эти библиотеки работают приемлемо, если кроме энкодера практически ничего в программе больше нет, иначе конкретные грабли выскакивают. Я обращаюсь…[Читать далее]
- Загрузить еще