флаг это хорошо когда на экран выводится много всего - чтобы не размазывать функции экрана по всей программе. а пробелы это идеальный способ удаления мусора при изменении длины выводимой строчки. в идеале конечно лучше чтобы эти пробелы были сразу вставлены в выводимую строку, но можно и проще. Но конкретная реализация сильно зависит от того сколько там тысяч раз в секунду у ТСа изменяется температура. пусть разместит код целиком, скорее всего какой-нибудь мимокрокодил всё подправит без всяких денег
нет. не зависит. поскольку это вывод на экран - а значит предназначено для человеческих глаз - значит в любом случае обновлять картинку чаще 2-5 раз в секунду нет ни малейшего смысла. как бы в реальности температуру не колбасило...
Если бы я все понимал то и не писал бы здесь. В своем первом посте, я как бы намекнул на желание помочь и хорошее настроение. Я понимаю Вас, с тупыми тяжело...
Так а как вам помогать-то? Кода нет, что нужно - непонятно. Я вот читаю и до сих пор не могу понять что нужно. Как вывод на экран связан с условием >30 или <30? Вы же все равно выводите, и при больше и при меньше 30.
да. я тоже никак не вкурю значения этой цифры добро бы ">10" и "<10" - это было бы логично... но 30 ?! - число знаков до 30 и после 30 - одинаковое...
Моя цель обновить экран один раз, когда температура стала выше 30 и обновить один раз если стала ниже 30градусов. Выбрано именно 30 для удобной отладки, чтобы не бегать к морозильной камере). А так он должен обновлятся когда температура изменит колличество занаков.К примеру было 10.0(4знака) Стало 9.0(3) знака, и при изменении последний знак остается на экране как мусор и на экране уже 9.00 будет.
А почему не разделить измерение температуры и вывод на экран? При измерении получаете температуру, проверяете равна ли она предыдущему значению, если НЕ РАВНА взводите фалаг в TRUE, сохраняете новое значение. Если РАВНА - ничего не делаете тут. В loop() отдельно проверяете этот флаг, если флаг FALSE - не заходите в функцию отображения если флаг TRUE - заходите, отображаете данные температуры из сохраненной переменной, скидываете флаг в FALSE ВСЕ... Надеюсь температуру из DS вы читаете не чаще чем раз в секунду... хотя бы?
Измеряю не чаще 1 секунды. Но можно и реже хоть один раз в 4 секунды. Проблема моей связки тини85 и oled экрана что, он медленно обновляется, выглядит это как мигание. Термометр будет в поле зрения как правило, а боковое зрение хорошо замечает это. Поэтому в планах обновлять экран крайне редко)
Ну так и обновляйте редко. Кто вам мешает задать порог изменения температуры для отображения на экране. Задали 1,0'С или 1,5'С порог отображения, и сравнивайте разницу между новым и старым значением с этим порогом.
ответ: интересно, что вот в этой фразе непонятно? Для того чтобы вычесть одно значение из другого - тоже пример нужен?
Код (C++): если(миллиc()-засечка>2000){ засечка=миллис(); температура = получитьТемпературу(); если(температура_прошлая!=температура){ температура_прошлая=температура; олед.поставитьКурсор(9,2); олед.печатать(" ");// 5 пробелов олед.поставитьКурсор(9,2); олед.печатать(температура,1); } } что тут может не работать даже не знаю
Вполне вероятно. Использую поату digispark, но без загрузчика, т.к. ее можно питать 12вольт и не нужно плату разводить новую.