Сергей Соколов, так просто нельзя. Никто не знает, когда настоящая "середина" окажется в районе 4 и 5 битов. Может оказаться, что максимальные значения именно на эти биты приходятся.
Да, такой вариант тоже рассматриваю. Пока не уверен. Можно найти кратное число элементов массива, чтобы совпадало. Но тут, как мне кажется, что сэкономить можно чуть больше "сжав" числа.
У меня не получается сначала сделать массив. Так было бы намного проще. Мне надо сразу класть в массив уменьшенные числа (это все из-за ограничения память в микрокотроллере). Конечно, я могу сохранять предыдущее значение и сохранять разницу, но разница может превышать 255 или +/-127
А хватит ли одного байта, чтобы сохранить числа с плавающей точкой?
Получается, что, например, старший бит означает умножение на 8. Число 1023 будет записано как b11111111, то есть 1016, а все, что меньше 128 будет записываться без старшего бита. Тогда всё от 0 до 127 будет сохраняться правильно, только в верхних областях будет округление до 8. Это самое простое, что пришло в голову. Но хотелось бы, чтобы точность ближе к верхней и нижней части была максимальная, а середина пусть будет менее точной.
Очевидно, что для выполнения Serial.println эта ерундовина тоже использует прерывания -так она подгружает в порт очередной символ после отправки предыдущего.
Непонятно, почему эта функция влияет, хотя расположена в другом месте программы. Также влияют простые расчеты типа a=b/c Причем, такая же ситуация: расчеты идут уже после завершения цикла.
поставить AVR_Studio
Пока я и с Arduino IDE не полностью разобрался. По ютубовским роликам думал, что все очень просто, но небольшое отклонение от типичных задач привело меня в недоумение.
#, попробую. винты проверены были. ну и в смарт смотрю периодически. память даже не знаю, у меня когда-то давно умирала память, там это выглядело намного более жестко. процессор даже не представляю как тестировать. ну а доктор веб какой-нибудь с флешки запустить можно, конечно. лишним не будет.
#, только вот никакого аваста нет. Проблема была в ESET SS5, который "ставил на паузу" программу при запуске. Оказалось, что ESS7 (и 12, например, версия тоже), такого не делает. А вот регулярное обращение к диску было даже после полного удаления антивируса. Встроенные средства защиты Windows7 отключены.
Ну я в Process Monitor увидел бы это все. А в Мониторе ресусоров explorer.exe почему-то не отображается (windows 7 x64). Просто нет в списке.
Интересно, что регулярные обращения вроде бы пропали после ВНИМАНИЕ удаления из корзины нескольких файлов, которые были на диске N. Причем там лежат файлы с других дисков, а explorer.exe реагировал только N. Мистика какая-то.
towin, интересное решение. Правда для меня пока сложное. Я думаю, что последний совет верный :) Кажется я придумал решение, которое более-менее подходит.
Матвей Правосудов Матвей Правосудов показал очень хороший вариант, правда я его уже давно сделал, но только у меня несколько блоков с цветом фона и серой рамкой (в том и была сложность, что цена несколько раз отображается, причем с дополнительной информацией)
Про емкостный датчик я думал. Это хорошая идея, но тогда именно в выключатель нужно ставить ардуину или протягивать дополнительные провода в то места, где она находится, чтобы кроме питания еще и сигнал послать (или можно совместить?).
А по первому способу - измерение напряжения в сети - можете ли подсказать какой запрос в гугле вводить, чтобы найти? Только не понятно, ведь все остальное тоже включится и разве не всегда напряжение будет одинаковым?