2022-05-16

eddy_em: (Default)
2022-05-16 02:14 pm
Entry tags:

MLX90640

Что-то то ли датчик мне бракованный попался (но за такие-то баксы! ладно бы он 50 рублей стоил, но не 50 баксов же!): чуть поработает и перестает выдавать ACK при передаче адреса по I2C, надо будет глянуть осциллографом, что там в шине творится.
Сижу, разбираюсь с даташитом. Похоже, таки не получится мне без чертовых флоатов обойтись ☹
Там еще и неплохой такой объем оперативки нужен для хранения калибровочных данных. В общем, лучше всего было бы сразу начинать работу с этим датчиком на одноплатнике, но раз уж начал мучать с STM32F103 — домучаю до конца… Если еще экранчик прикрутить, можно будет эдакий простой тепловизор сварганить. Правда, чтобы картинку получить, нужно столько нетривиальных вычислений сделать — жуть просто!
eddy_em: (Default)
2022-05-16 05:38 pm

«Решето Эратосфена»

Решил вот попробовать быстродействие поиска простых чисел методом "решета". Получилось как-то совершенно медленно. Я построил битовую маску, где каждому простому числу соответствует единичный бит. Вот такой говнокод )
Выделил 1ГБ оперативки (т.е. поиск простых от 2 до [2³³-1]). На простые от 2 до 63 ушло 17.3 секунды. Остальные простые в 8 потоков (т.к. здесь уже смело можно openmp использовать: шанс на коллизию сильно снижается) считаются еще 183 секунды. Если учесть, что "в лоб" все это вычислялось 3.5 минуты, похоже, таки gcc на всякий случай воткнул синхронизацию при выставлении маски.