August 12th, 2021

(no subject)

В общем, стоило почти выздороветь с того раза, но попасть под дождь, как насморк вернулся. Температуры нет, ничего не болит, но ощущение раздражения отвлекает... да от всего. Сосредоточиться можно разве что на треть от обычного.

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

Выходит, что с двух сторон общий посыл - фигушки, а не долго вдумчиво поразмышлять. Только кусочками и наскоками.

По работе нашёл причину, придумал оптимизацию и стопанул весь процесс - данные дрянь, можно обучиться под них, но это ничего, кроме красивых циферок не даст. Сделал ещё красивое описание почему результат именно такой - с подсвечиванием токенов прямо в консоли esc-последовательностями - не пригодилось.

Не по работе - разобрался как на голом ассемблере AVR складывать, вычитать и умножать больше, чем байт за раз; теперь данные с АЦП выводятся сразу в вольтах а можно и в амперы пересчитать, с учётов шунта. Сотворил текстовый интерфейс, уж точно не хуже, чем в мониторе радио-86рк был, даже было добавил esc-последовательности для раскраски, но одумался.

И всё - короткими фрагментами, кусочками, рывками и перебежками.
-----

UPD: Всё-таки напишу про свой маленький позор, иначе сам забуду и знакомые грабли снова станут нехожеными. Я очень долго не мог отдалить простой код - читать два разных канал АЦП, помещая результат в память, начиная с момента ненулевого результата. Прочитал кучу форумов, где люди, не страдающие сопливостью ума, бьются за подобный результат с разной степенью тщетности. Их код был неработоспособен, даже тот, который исправлен и дополнен. Мой, увы, тоже, причём даже если я читал из одного канала - ждать можно было вечно - запись не начиналась никогда или начиналась, но только от помехи, а не от реального сигнала или начиналась сразу же, но там была фигня. Прокопавшись урывками (я всё делал урывками пока "оно считается") пару часов, обнаружил следующее:

1. читал не нужный канал АЦП, а случайный, зависящий от предыдущих прочитанных данных,то есть то один, то другой; при нулях на входе нулевого канала читался нулевой, потом - как повезёт.
2. ненулевым результатом считал только тот, где ОБА байта ненулевые; при моих сигналах старший байт был нулём.