Самсусамыч, спасибо! Залил эту прошивку, комнатную показывает нормально, "стандартную" 21,5 Когда на холодильнике смогу потестить пока не знаю, да и на "соплях" уже не хочется таскать туда-сюда к холодильнику, запаса датчиков больше нет, последний остался живой
К термостату на Тини13 даже нечего теперь повесить... и заказывать опять 18S20 больше что-то совсем не хочется, теперь только если 18B20
_________________ Койот (Canis latrans) – это не Кот, а известен как американский шакал, является видом псовых... ____________
"Кто хочет, тот ищет возможности, кто не хочет —ищет причины."
Заголовок сообщения: Re: Термостат на AVR (arduino)
Добавлено: Пн апр 13, 2020 11:33:07
Значит будем считать, что работает нормуль… а если что-то вылезет – поправим. В последней прошивке DS18S20 ещё поправил меню (интервалы… кнопок). А это прошивка для датчика DS18B20.
Да, будем считать, что все работает нормуль а длительные тесты сейчас пока невозможны... Надо теперь это всё что "на соплях" ещё причесать для встраивания по месту, а вот места там мало, и нормальное питание не впихнуть так просто.
Судя по размеру, эта прошивка для Атмеги8, не для Тини13? а для Тини13 под 18В20 есть?
_________________ Койот (Canis latrans) – это не Кот, а известен как американский шакал, является видом псовых... ____________
"Кто хочет, тот ищет возможности, кто не хочет —ищет причины."
Ну, если есть такая для Тини13 под 18В20, потом попробовать Так-то уже собран, может потом с 18В20 его попробовать, может заработает и дело было в том датчике 18S20
Спасибо, Самсусамыч!
_________________ Койот (Canis latrans) – это не Кот, а известен как американский шакал, является видом псовых... ____________
"Кто хочет, тот ищет возможности, кто не хочет —ищет причины."
Заголовок сообщения: Re: Термостат на AVR (arduino)
Добавлено: Пн апр 13, 2020 17:37:59
Данная прошивка для этой же схемы термостата на ATmega8 для датчика DS18B20. Но немного с иным алгоритмом регулирования. Параметры и алгоритм работы таймеров остался без изменений. А вот диапазон температурной уставки изменился. Если в предыдущей версии температурная уставка регулировалась для выключения компрессора, то в данной версии она предназначена для включения компрессора. Данную уставку можно выбрать в широком диапазоне, от +10С до -25С. Что позволяет регулировать температуру на выбор, или в морозильной камере, или в холодильной камере. Шаг изменения уставки 1С. По умолчанию устанавливается значение +4С. Выключение компрессора производится по сумме значений: температурная уставка + значение дифференциала. Значение дифференциала можно выбрать в диапазоне от 1С до 20С. Вход в режим редактирования уставки осуществляется кнопкой «+» (как в предыдущем варианте). А вход в режим редактирования дифференциала осуществляется кнопкой «-».
Вложение:
Termostat_LED_V2.hex
Исходник.
Вложение:
Termostat_OA_ATtmega8_V2.zip
Прошивка требует тщательного тестирования с наблюдением как отрабатывает алгоритм перехода через ноль при регулировании. Возможно есть ошибки которые вылезут при тестах.
Последний раз редактировалось Самсусамыч Вт апр 14, 2020 13:12:06, всего редактировалось 2 раз(а).
Самсусамыч, одолело меня любопытство - скачал и установил АВ. посмотрел твои исходники. с наскоку не всё понятно, но уловить смысл каждой структуры можно. также я дизассемблировал прошивку, скомпилировал заново и ужаснулся размеру кода - аж под 7 кБ. для такой простой задачи на ассемблере у меня бы получилось в 4, а то и в 5, раз короче. а может, и более ... АВ генерирует, наподобие языков высокого уровня, избыточный код. даже на Си с включенной оптимизацией могло оказаться заметно короче. многие одинаковые действия повторяются многократно, а не вынесены в одну-единственную подпрограмму. короче, с моей точки зрения результат работы АВ - "ужас".
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
У каждого компилятора - свои особенности. Ассемблер штука хорошая, да вылизывание проекта под менюшки/кнопушки.... Ужжшшш ... больно хлопотное... ЯВУ удобственно-прост (с первого взгляду)... да дает частенько избыточный по объёму размер кода... В принципе - не все ли равно, на чем написано и сколько места занимает - если устройство УСТОЙЧИВО РАБОТАЕТ. Да еще и для пользователя удобно в управлении.
АВ генерирует, наподобие языков высокого уровня, избыточный код.
нет, это не АБ , это Самсусамыч генерирует избыточный код разве АСМ сам выносит повторяющиеся куски кода в процедуры? вот и АБ также - делает ровно то, что нарисовано програмистом. ну, разве что таблицу прерываний сам рисует (сам я не лазил, не смотрел, есть ли к ней доступ... не было нужды).
_________________ Для тех, кто не учил магию мир полон физики Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Заголовок сообщения: Re: Термостат на AVR (arduino)
Добавлено: Вт апр 14, 2020 11:29:12
Это не АВ так генерирует, а я не оптимально пишу. Я не программист, мне своих знаний на бытовом уровне вполне достаточно. Главное, чтобы работало правильно, а избыточный код или нет – дело десятое. Знающие на АВ пишут коды не больше классического Ассемблера, так что мой код не показатель возможностей АВ. Я ведь сразу предупреждал, что там чёрт ногу сломит.
Термостат пока работает в тестовом режиме как термометр на холодильнике Переразводить плату под родное место пока некогда, да и туда с Атмегой в dip-корпусе вряд-ли впихнешь.
_________________ Койот (Canis latrans) – это не Кот, а известен как американский шакал, является видом псовых... ____________
"Кто хочет, тот ищет возможности, кто не хочет —ищет причины."
автоматическое преобразование алгоритмов никогда не сравнится с программистом.
В АБ его отродясь не было... дай Сусамычу описание команд ассемблера, он его осилит быстро, но код выдаст на ассемблере до бита идентичный... причина в том, что у ассемблера выше порог входа и пока разучишь все мнемокоды, уже и в оптимизации поднатаскаешься... в АБ всё становится относительно понятно и без долгого курения учебников - отсюда и такой код (будем считать, что он оптимизирован по скорости выполнения, т.к. не расходуется время на вызовы подзадач) АБ — это графический ассемблер (только украшен примерно десятком незатейливых макросов, которые можно и не использовать) и принцип работы у него ассемблерный - прямое пребразование мнемокода в машинный, т.е. можно ассемблерный код просто нарисовать в АБ и он скомпилится с точностью до байта (п.к.м. если таблица прерываний стандартная... сейчас специально полазаю, посмотрю, можно ли её тут править). А ещё у АБ хороший отладчик (есть программный, есть "на кристалле" правда для накристалльной отладки код будет несколько модифицирован - добавится модуль отладки и будет занята 1 нога).
_________________ Для тех, кто не учил магию мир полон физики Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
дай Сусамычу описание команд ассемблера, он его осилит быстро, но код выдаст на ассемблере до бита идентичный...
это ты просто не видел дизассемблированного текста его прошивки. дизассемблируй прошивку, и тоже ужаснешься, как и я. конешно, две такие команды подряд andi r18,0xF7 andi r18,0xBF - не вина компилятора, а вина автора. но когда идет работа с одним регистром, а компилятор перед каждой операцией с регистром заново загружает командой LDS в регистр то же самое число из того же самого адреса, то программист такой глупости никогда не сделает. а автомат на каждое "телодвижение" с параметром заново загружает его из памяти. а когда ты почитаешь дизассемблированный текст, еще насмотришься разных "чудес" автоматического преобразования визуально созданных алгоритмов. АВ - это визуальное средство, и может делать только то, чему его обучили. а обучили его каждый визуальный элемент алгоритма заменять некоторым набором команд. и в результаты эти наборы команд создают ту самую избыточность, которую ни один программист не создаст никогда.
и напоследок, даже 2 программиста на одну и ту задачу НИКОГДА не напишут идентичный код. каждый решит ее по своему ...
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Хорошо, посмотрю, проанализирую..., в прошлых версиях АБ код пережимался сначала в ассемблер, а затем уже в машинный код, и этот ассемблерный код можно было посмотреть, правда я тогда его знал ещё хуже чем сейчас, но откровенных косяков не помню... не, я говорю про одного программиста, занимающегося перебивкой своей программы из АБ в ассемблер... но, похоже я был неправ... пошел ставить дизасм... (ноут новый, на нем нет ещё ничего, даже предмета спора - АБ)
Добавлено after 8 minutes 40 seconds: кстати... некоторая оптимизация в АБ присутствует: например, если надо записать одно и то-же число в несколько мест, недоступных для прямой записи из константы, то будет задействован регистр R16 и его значение будет инициировано только 1 раз, перед первым использованием.
_________________ Для тех, кто не учил магию мир полон физики Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
я с работой в АБ не разбирался, поэтому не знаю его возможностей. я просто открыл проект и посмотрел, что там показывает. дизассемблер у меня установлен такой: ReAVR. открываешь хекс и сразу получаешь готовый текст.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Сейчас этот форум просматривают: HardWareMan и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения