Комментарии 8
Я на ней делал термометр на 18B20 с выводом на дисплей на MAX7219. Свободно оставалось 5 байт вроде )))))
Если выводить на индикатор, то это и в 500 байт уложится. :-) В этом проекте работает фильтр, который гасит частоты выше 70 Гц, потом фиксируется время перехода синусоиды с "-" в "+". Затем этот интервал делится на 4 и выбирается где именно был "0" (для увеличения точности), рассчитывается частота (табличная функция 1/T) и вот уже частота выводится на дисплей.
subi r21, $02
; Центрируем r21:r20 - 512 вычитая постоянную составляющую (r21:r20 = X0)
Надо бы сделать sbci r20…
P.S. Текст filter_tick - потерялся?
Для варианта 2 тут напрашивается тинт25 и встроенный термометр. Как-то пробовал это дело, работает. Но это довольно неудобная калибровка, причем, для каждого чипа. Остаётся вопрос питающего напряжения - если оно нестабильно, тоже надо его учитывать.
Не совсем понял, почему нельзя было вынести измерение частоты и температуры в отдельные интервалы. Частота генератора, а тем более температура, меняются относительно медленно. (Возможно, это не влезет в 1024 байта)
Таймер один в ATtiny13, и все время зависимые задачи надо уложить в него. Динамическая индикация 150 Гц, опрос АЦП примерно 4500 Гц и опрос датчика DS18B20, у которого прием передача бита 10/60 мкс, а ожидание преобразования 750 мс. Вот и разложил это все в одном таймере.
кстати с учетом того что основной цикл все равно пустой loop можно было бы не тратить такты и стек на прерывание а сделать polling ожидание флага таймера в этом пустом цикле
onewire этот стремный, ни с чем не совместимый протокол + подделки датчиков + ладно бы он мерял какую то внешнюю температуру, так тут его еще по хорошему приклеить к тиньке надо. делать частотометр и не поставить хотя бы кварц, генератор (термокомпенсированный до кучи, ага) ... тонкая такая грань между исскуством и СЗЗБ
То что DS18B20, реально, стремная вещь, убедился на практике. Попытался поставить другой, свеже купленный, и не могу заставить его работать. Буду делать логер шины, чтобы увидеть что происходит.
На тему измерения: да, датчик надо клеить сверху микроконтроллера на термопасту.
А вот по поводу кварца - зря. Это первое что было сделано. :-) Сейчас пишу следующую статью именно про частотомер с внешним 8МГц генератором на кварце. И уже, непосредственно, про фильтр и измерения. Надо было посмотреть - тема хоть кому-то интересна. :-)
И, да, могу себе позволить заниматься исскуством.

Частотомер с БИХ‑фильтром НЧ в 1 Кбайте на ATtiny13 или как запрячь одну лошадь в три телеги