Термостат на AVR (arduino)

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Аватара пользователя
Sigma
Друг Кота
Сообщения: 10029
Зарегистрирован: Ср мар 06, 2019 12:23:29

Re: Термостат на AVR (arduino)

Сообщение Sigma »

Самсусамыч, спасибо! :beer:
Залил эту прошивку, комнатную показывает нормально, "стандартную" 21,5 :)
Когда на холодильнике смогу потестить пока не знаю, да и на "соплях" уже не хочется таскать туда-сюда к холодильнику, запаса датчиков больше нет, последний остался живой :)))

К термостату на Тини13 даже нечего теперь повесить... и заказывать опять 18S20 больше что-то совсем не хочется, теперь только если 18B20
Койот (Canis latrans) – это не Кот, а известен как американский шакал, является видом псовых...
____________

"Кто хочет, тот ищет возможности, кто не хочет —ищет причины."
Самсусамыч

Re: Термостат на AVR (arduino)

Сообщение Самсусамыч »

Значит будем считать, что работает нормуль… :) а если что-то вылезет – поправим. :beer: В последней прошивке DS18S20 ещё поправил меню (интервалы… кнопок).
А это прошивка для датчика DS18B20.
Termostat_LED_DS18B20.hex
Аватара пользователя
Sigma
Друг Кота
Сообщения: 10029
Зарегистрирован: Ср мар 06, 2019 12:23:29

Re: Термостат на AVR (arduino)

Сообщение Sigma »

Да, будем считать, что все работает нормуль :beer: а длительные тесты сейчас пока невозможны...
Надо теперь это всё что "на соплях" ещё причесать для встраивания по месту, а вот места там мало, и нормальное питание не впихнуть так просто.

Судя по размеру, эта прошивка для Атмеги8, не для Тини13? а для Тини13 под 18В20 есть?
Койот (Canis latrans) – это не Кот, а известен как американский шакал, является видом псовых...
____________

"Кто хочет, тот ищет возможности, кто не хочет —ищет причины."
Самсусамыч

Re: Термостат на AVR (arduino)

Сообщение Самсусамыч »

[uquote="Sigma",url="/forum/viewtopic.php?p=3826434#p3826434"]Судя по размеру, эта прошивка для Атмеги8, не для Тини13? а для Тини13 под 18В20 есть?[/uquote]
Да, для ATmega8.
А что надо и для тини13? Вот:
DS18B20_Tiny13.hex
Аватара пользователя
Sigma
Друг Кота
Сообщения: 10029
Зарегистрирован: Ср мар 06, 2019 12:23:29

Re: Термостат на AVR (arduino)

Сообщение Sigma »

Ну, если есть такая для Тини13 под 18В20, потом попробовать
Так-то уже собран, может потом с 18В20 его попробовать, может заработает и дело было в том датчике 18S20

Спасибо, Самсусамыч! :beer:
Койот (Canis latrans) – это не Кот, а известен как американский шакал, является видом псовых...
____________

"Кто хочет, тот ищет возможности, кто не хочет —ищет причины."
Самсусамыч

Re: Термостат на AVR (arduino)

Сообщение Самсусамыч »

На здоровье! Обращайся если что. Удачи! :beer:
Аватара пользователя
Sigma
Друг Кота
Сообщения: 10029
Зарегистрирован: Ср мар 06, 2019 12:23:29

Re: Термостат на AVR (arduino)

Сообщение Sigma »

:beer:
Койот (Canis latrans) – это не Кот, а известен как американский шакал, является видом псовых...
____________

"Кто хочет, тот ищет возможности, кто не хочет —ищет причины."
Самсусамыч

Re: Термостат на AVR (arduino)

Сообщение Самсусамыч »

Данная прошивка для этой же схемы термостата на ATmega8 для датчика DS18B20. Но немного с иным алгоритмом регулирования. Параметры и алгоритм работы таймеров остался без изменений. А вот диапазон температурной уставки изменился. Если в предыдущей версии температурная уставка регулировалась для выключения компрессора, то в данной версии она предназначена для включения компрессора. Данную уставку можно выбрать в широком диапазоне, от +10С до -25С. Что позволяет регулировать температуру на выбор, или в морозильной камере, или в холодильной камере. Шаг изменения уставки 1С. По умолчанию устанавливается значение +4С.
Выключение компрессора производится по сумме значений: температурная уставка + значение дифференциала. Значение дифференциала можно выбрать в диапазоне от 1С до 20С.
Вход в режим редактирования уставки осуществляется кнопкой «+» (как в предыдущем варианте). А вход в режим редактирования дифференциала осуществляется кнопкой «-».
Termostat_LED_V2.hex
Исходник.
Termostat_OA_ATtmega8_V2.zip
Прошивка требует тщательного тестирования с наблюдением как отрабатывает алгоритм перехода через ноль при регулировании. Возможно есть ошибки которые вылезут при тестах. :)
Последний раз редактировалось Самсусамыч Вт апр 14, 2020 13:12:06, всего редактировалось 2 раза.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19045
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Термостат на AVR (arduino)

Сообщение Starichok51 »

Самсусамыч, одолело меня любопытство - скачал и установил АВ.
посмотрел твои исходники. с наскоку не всё понятно, но уловить смысл каждой структуры можно.
также я дизассемблировал прошивку, скомпилировал заново и ужаснулся размеру кода - аж под 7 кБ.
для такой простой задачи на ассемблере у меня бы получилось в 4, а то и в 5, раз короче. а может, и более ...
АВ генерирует, наподобие языков высокого уровня, избыточный код.
даже на Си с включенной оптимизацией могло оказаться заметно короче.
многие одинаковые действия повторяются многократно, а не вынесены в одну-единственную подпрограмму.
короче, с моей точки зрения результат работы АВ - "ужас".
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15550
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Термостат на AVR (arduino)

Сообщение BOB51 »

У каждого компилятора - свои особенности.
Ассемблер штука хорошая, да вылизывание проекта под менюшки/кнопушки....
Ужжшшш ... больно хлопотное...
ЯВУ удобственно-прост (с первого взгляду)... да дает частенько избыточный по объёму размер кода...
В принципе - не все ли равно, на чем написано и сколько места занимает - если устройство УСТОЙЧИВО РАБОТАЕТ.
Да еще и для пользователя удобно в управлении.
8)
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: Термостат на AVR (arduino)

Сообщение Ivanoff-iv »

[uquote="Starichok51",url="/forum/viewtopic.php?p=3827000#p3827000"]АВ генерирует, наподобие языков высокого уровня, избыточный код.[/uquote] нет, это не АБ , это Самсусамыч генерирует избыточный код :)
разве АСМ сам выносит повторяющиеся куски кода в процедуры? вот и АБ также - делает ровно то, что нарисовано програмистом.
ну, разве что таблицу прерываний сам рисует (сам я не лазил, не смотрел, есть ли к ней доступ... не было нужды).
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Самсусамыч

Re: Термостат на AVR (arduino)

Сообщение Самсусамыч »

Это не АВ так генерирует, а я не оптимально пишу. :))) Я не программист, мне своих знаний на бытовом уровне вполне достаточно. Главное, чтобы работало правильно, а избыточный код или нет – дело десятое. 8) Знающие на АВ пишут коды не больше классического Ассемблера, так что мой код не показатель возможностей АВ. Я ведь сразу предупреждал, что там чёрт ногу сломит. :)))
Аватара пользователя
Starichok51
Модератор
Сообщения: 19045
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Термостат на AVR (arduino)

Сообщение Starichok51 »

Самсусамыч писал(а):Это не АВ так генерирует, а я не оптимально пишу.
ну, я такое предполагал. но я все равно в сомневаюсь в способности АВ минимизировать код до возможностей прямого написания на ассемблере.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Самсусамыч

Re: Термостат на AVR (arduino)

Сообщение Самсусамыч »

[uquote="Starichok51",url="/forum/viewtopic.php?p=3827054#p3827054"]но я все равно в сомневаюсь в способности АВ минимизировать код до возможностей прямого написания на ассемблере.[/uquote]
Это Ваше право, не кому не запрещено заблуждаться. :)
Аватара пользователя
Starichok51
Модератор
Сообщения: 19045
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Термостат на AVR (arduino)

Сообщение Starichok51 »

это ты заблуждаешься.
автоматическое преобразование алгоритмов никогда не сравнится с программистом.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
Sigma
Друг Кота
Сообщения: 10029
Зарегистрирован: Ср мар 06, 2019 12:23:29

Re: Термостат на AVR (arduino)

Сообщение Sigma »

Термостат пока работает в тестовом режиме как термометр на холодильнике :))) Переразводить плату под родное место пока некогда, да и туда с Атмегой в dip-корпусе вряд-ли впихнешь.
Койот (Canis latrans) – это не Кот, а известен как американский шакал, является видом псовых...
____________

"Кто хочет, тот ищет возможности, кто не хочет —ищет причины."
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: Термостат на AVR (arduino)

Сообщение Ivanoff-iv »

[uquote="Starichok51",url="/forum/viewtopic.php?p=3827098#p3827098"]автоматическое преобразование алгоритмов никогда не сравнится с программистом.[/uquote] В АБ его отродясь не было...
дай Сусамычу описание команд ассемблера, он его осилит быстро, но код выдаст на ассемблере до бита идентичный...
причина в том, что у ассемблера выше порог входа и пока разучишь все мнемокоды, уже и в оптимизации поднатаскаешься...
в АБ всё становится относительно понятно и без долгого курения учебников - отсюда и такой код (будем считать, что он оптимизирован по скорости выполнения, т.к. не расходуется время на вызовы подзадач) :)
АБ — это графический ассемблер (только украшен примерно десятком незатейливых макросов, которые можно и не использовать) и принцип работы у него ассемблерный - прямое пребразование мнемокода в машинный, т.е. можно ассемблерный код просто нарисовать в АБ и он скомпилится с точностью до байта (п.к.м. если таблица прерываний стандартная... сейчас специально полазаю, посмотрю, можно ли её тут править).
А ещё у АБ хороший отладчик (есть программный, есть "на кристалле" правда для накристалльной отладки код будет несколько модифицирован - добавится модуль отладки и будет занята 1 нога).
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Аватара пользователя
Starichok51
Модератор
Сообщения: 19045
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Термостат на AVR (arduino)

Сообщение Starichok51 »

Ivanoff-iv писал(а):дай Сусамычу описание команд ассемблера, он его осилит быстро, но код выдаст на ассемблере до бита идентичный...
это ты просто не видел дизассемблированного текста его прошивки.
дизассемблируй прошивку, и тоже ужаснешься, как и я.
конешно, две такие команды подряд
andi r18,0xF7
andi r18,0xBF
- не вина компилятора, а вина автора.
но когда идет работа с одним регистром, а компилятор перед каждой операцией с регистром заново загружает командой LDS в регистр то же самое число из того же самого адреса, то программист такой глупости никогда не сделает. а автомат на каждое "телодвижение" с параметром заново загружает его из памяти.
а когда ты почитаешь дизассемблированный текст, еще насмотришься разных "чудес" автоматического преобразования визуально созданных алгоритмов.
АВ - это визуальное средство, и может делать только то, чему его обучили. а обучили его каждый визуальный элемент алгоритма заменять некоторым набором команд. и в результаты эти наборы команд создают ту самую избыточность, которую ни один программист не создаст никогда.

и напоследок, даже 2 программиста на одну и ту задачу НИКОГДА не напишут идентичный код. каждый решит ее по своему ...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: Термостат на AVR (arduino)

Сообщение Ivanoff-iv »

Хорошо, посмотрю, проанализирую..., в прошлых версиях АБ код пережимался сначала в ассемблер, а затем уже в машинный код, и этот ассемблерный код можно было посмотреть, правда я тогда его знал ещё хуже чем сейчас, но откровенных косяков не помню...
не, я говорю про одного программиста, занимающегося перебивкой своей программы из АБ в ассемблер... но, похоже я был неправ...
пошел ставить дизасм... (ноут новый, на нем нет ещё ничего, даже предмета спора - АБ)

Добавлено after 8 minutes 40 seconds:
кстати... некоторая оптимизация в АБ присутствует: например, если надо записать одно и то-же число в несколько мест, недоступных для прямой записи из константы, то будет задействован регистр R16 и его значение будет инициировано только 1 раз, перед первым использованием.
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Аватара пользователя
Starichok51
Модератор
Сообщения: 19045
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Термостат на AVR (arduino)

Сообщение Starichok51 »

я с работой в АБ не разбирался, поэтому не знаю его возможностей.
я просто открыл проект и посмотрел, что там показывает.
дизассемблер у меня установлен такой: ReAVR. открываешь хекс и сразу получаешь готовый текст.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Ответить

Вернуться в «Arduino»