Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Re: Научите мастерству на примере кода

Вс сен 18, 2022 11:23:45

MLX90640, да вроде бы цены уже не такие адски завышенные, как было в начале паники. Но все равно тот же мелкий F030 уже в 2.5-3 раза дороже стал (поди-ка его найди по 25р, теперь только 55-60), F103 в 5 раз подскочили, F072 в 5-6… Да еще и сама ST "настаивает", что младшие серии F скоро вообще не буду выпускать. А "альтернатива" в виде G вообще не годится: и цена значительно выше, и нет нужной периферии (где среди G-шек аналог STM32F072?). Вот, разве что старшие еще никому не нужные у китайцев завалялись, и цены на них взлетели всего-то в 2 раза.
Зато всплыли STM32F103C6T6 по такой же цене, как были раньше CBT6. Я себе недавно полтора десятка "синих таблеток" на C6T6 прикупил. Проверил - они, хоть и маркировка странная. На самом деле, крайне редко бывает необходимо иметь больше 32кБ флеша (для сохранения переменных хватит 1-2кБ, это лишь в одном "проекте" мне нужно было во флеш-память логи сохранять, а для этого нужно ее как можно больше, чтобы слишком быстро МК не сдох), а уж оперативки больше 3кБ нужно лишь для сложной работы с экранами всякими.

В общем, пока на али есть F303 и F072 в LQFP48, надо отовариваться по полной. Хотя бы по сотне запас сделать, чтобы до конца жизни хватило ☺

Re: Научите мастерству на примере кода

Вс сен 18, 2022 18:42:58

...ежли уж делаем "запрос к сообществу" - то извольте и используемые сторонние библиотеки (не входящие в комплект IDE "по умолчанию") приложить...Версию платформы с указанием автора(изготовителя) также указать/приложить не помешает...
Как известно - Каков вопрос - таков ответ. Так что - сам виноват. Надо было теме дать другое название, типа - "Научите мастерству на примере ДАННОГО кода". Возможно чат не полез бы в глобальные вопросы программирования и железа. Прикладываю библиотеки. Версия платформы ATTinyCore - 1.5.2 (# Overhauled summer 2015 by Dr. Azzy (Spence Konde) and again in early 2016 to add support for more chips.# Significant overhaul again in summer 2020 for micronucleus boards.#)
Попросту - хотелось бы увидеть более "причесанный" код, более компактно компилирующийся.
Вложения
ATtiny85_OLED_MAX6675_2.ino.zip
(7.18 KiB) Скачиваний: 39
Tiny4kOLED-master.zip
(95.5 KiB) Скачиваний: 39
GyverMAX6675.zip
(7.68 KiB) Скачиваний: 39
Последний раз редактировалось Ariadna-on-Line Вс сен 18, 2022 21:44:03, всего редактировалось 3 раз(а).

Re: Научите мастерству на примере кода

Вс сен 18, 2022 20:08:57

Если цель "более компактно", то результат предсказуем - напр. в Attiny45 не поместится.
В Attiny85:
6626 байта (87%) / 259 байта (50%)
через напр. 5 мин, чисто косметическая корекция:
6524 байта (85%) / 255 байта (49%)
Используйте код так (если нет других целей и отправных точек, которые не упомянули).
Последний раз редактировалось veso74 Вс сен 18, 2022 20:25:09, всего редактировалось 3 раз(а).

Re: Научите мастерству на примере кода

Вс сен 18, 2022 20:14:22

У меня ATtiny85. Скетч -6486 байт (98%). Переменные - 255 байт (49%)..
Возник практический вопрос. В АТтини85 есть внутренний термодатчик. Тепло от управляемого устройства проникает в процессор, - какую температуру кристалла считать аварийной ?
ПС. Заменил пять int на word? и один int на byte - размер кода (бинарника) сократился на 100 байт, до 6386 байт !!!

Re: Научите мастерству на примере кода

Вс сен 18, 2022 21:30:49

Ранее проанализируйте переменные, до 255?, до 65535? до 4294967295?, есть ли отрицательная часть и т. д. Через короткое время станет рутиной: при добавлении переменной, ее тип определяет диапазон изменения.

Но иногда бывают "сюрпризы": в математических операциях с преобразованием типов (явным или неявным) - видимо "большие данные" делают код короче. Поэтому: тесты, с предсказуемыми результатами, но не мешает попробовать и невозможное.

Re: Научите мастерству на примере кода

Пн сен 19, 2022 12:37:56

Простейшие тесты алгоритмов весьма удобно делать на том симуляторе, что я давал ссылку.
Именно простейшие(без "внешних сторонних библиотек и " многофайловости").
А уж затем отлаженное ставить в основной проект.
Там весьма хороший режим пошагового просмотра, включая используемые переменные.
:beer:
Ответить