Измерение времени выполнения команды (в цикле)

Кино 24 кадра в секунду и всё плавно едет. 70 мс это всего в 2 раза медленней.

Программно по i2c можно ГОРАЗДО быстрее выводить картинку (279 fps для 128х32). Аппаратно можно тоже поднять частоту !!!

(O_O)

Программный i2c 1 МГц (для 16 МГц устройств) для AVR. | Аппаратная платформа Arduino
https://arduino.ru/forum/programmirovanie/programmnyi-i2c-1-mgts-dlya-16-mgts-ustroistv-dlya-avr?page=1#comment-572687

Дисплей может ещё быстрее как минимум в 2 раза - проверял на stm32…
Провел тест. OLED дисплей 128x64 на чипе SSD1306 подключен через I2C, соплями, без пайки и работает с частотой 271+ FPS - Аппаратные вопросы - Arduino.ru
Провел тест. OLED дисплей 128x64 на чипе SSD1306 подключен через I2C, соплями, без пайки и работает с частотой 271+ FPS

1 лайк

Второй пример для stm так что я не могу протестировать, а первый у меня не заработал, он там что то пытается на 1-1.5 Мгц передать но видно такие фронты и уровень SCK контроллеру экрана не очень нравятся. Я по коду не пойму можно как то замедлить искуственно передачу?

И ещё получается ему нужен буфер в SRAM 512, а у attiny85 всего столько памяти.

Вам не нужна тактовая МГц, смотрите принцип работы. Разница скорости между кодами у вас и Командира - в 20 раз, так что даже если вы запустите его код на тактовой в 100кгц - выиграете в два раза в скорости обновления экрана

По моему я его окирпичил… после записи бутлоадера с обцией 128Кгц он не отвечает вообще.

Высоковольтный программатор спасёт отца русской демократии.

Нормально он так стоит на али… SPI я так понял теперь вообще не доступен?

Вы сказали “окирпичил”, я это принял к сведению и сказал, что делать в этой ситуации. А действительно Вы его “окирпичили” или нет – не знаю, не разбирался что Вы там сделали.

Знаете, вот смотрю я на Ваши мучения … ну, не так же всё это делается. Чего Вы пытаетесь слона-то целиком в рот запихать? У Вас всё свалено в кучу – и ADC, и измерение скорости (непонятно зачем, она отлично считается) и SSD1306 там же рядом болтается и ничего из перечисленного не работает “стопудово-надёжно”, т.е. Вам не на что опираться – всякий раз, когда что-то идёт не так, Вы не знаете что именно не работает и, соответственно, не знаете за что хвататься.

Попробуйте остыть, сдать назад и начать делать это всё по частям. Типа: выбросьте всё и добейтесь нормальной работы того же ADC, оформите в компактные функции, испытайте и убедитесь, что всё нормально. Потом, когда у Вас будет какая-никакая уверенность, что с этим всё в порядке, пробуйте добавлять экран и т.д.

А с тем же ADC начинать надо не с кодов, а с задачи. Какие напряжения измеряются, какая нужна точность, нужны ли абсолютные значения или достаточно “попугаев”. Пока Вы не ответите внятно (лучше письменно) на все эти вопросы к кодам и подступаться не надо. Может Вам нужны дифференциальные режимы? Может Вам усиление нужно? Может нужен режим шумоподавления при измерении? Разберитесь сначала, а потом аккуратно это сделайте.


И да, кстати, по поводу “нормально так стоит” – на самом, деле вещь реально стоящая. Я, помнится, разорился на покупку не на али, а прямо у Микрочипа в их магазине за $400+ и ни разу не пожалел. Столько раз выручало. Как-то попались оригинальные, рабочие, но б/у 328p практически даром, взял сотню (по цене одной на ali). Но они б/у и очень нестандартно прошиты (как Вы выражаетесь “окирпичены”), но мне пофиг – меняю фьюзы и они у меня отлично работают. Только на одной этой покупке стоимость программатора отбил полностью.

1 лайк

проще купить новую тиньку. А лучше сразу пять, с учетом вашей тяги к экспериментам “методом тыка”, без всякого понимания теории

1 лайк

Контакты переназначили в коде ?
В примере вывод идет из PROGMEM … буфер не нужен…

Arduino as ISP тоже, только в скетче одну строку поправить, есть тут где-то тема про 128 килогерц тактирования

1 лайк

Аппаратно - это где как.
На Arduino Due дисплей (по меньшей мере один - который я испытывал) вполне стабильно работал на 2 МГц. А вот поднять частоту i2c на stm32 IMHO довольно проблематично.

Я про AVR там же можно не на 100кГц, а на 880 кГц аппаратно выводить.
На STM32 я программно до 2.5+ МГц поднимал и дисплей работал …

Ура! Cпасена букашка вот такой герляндой, собранной из того что было

USB-UART → LGT8P as ISP -->at85
Спасибо за совет про возможность шить на пониженной частоте.