Да ну, не. Я помню в каком то дисплее была возможность одной командой ворочать. Просто в st7789 Алиса дала список там всяких, отключи, включи дисплей, переведи в эконом и т.д. , а про поворот при выводе данных нет. Конечно это не проблема, но математику к изображениям (буквы, картинки) лень применять Напишу, если найду куда , авторам, дисплей редкий, библиотека должна быть хорошая, а не халтура.
… вот кстати функция инверсии цвета:
void ERGFX::invertDisplay(boolean i) {
// Do nothing, must be subclassed if supported
}
Я понимаю, что могу сделать вне библиотеки, но всё же.
Это не функция поворота, это функция установки ориентации дисплея, что следует из названия (повернтуть - to rotate, но никак не setRotation).
Да и написана, честно говоря, кривовато…
Ни разу не видел у цветных дисплеев интерфейс I2C. Вы хоть представляете, насколько медленно в этом случае там все будет шевелиться?
Обычно у цветных дисплеев выбор между SPI и параллельным.
Не знаю, я пробовал в других ходовых библиотеках, срали они на init(76,284); .
Всё также как на 240х240. Я так понимаю все пиксели смещены по осям на некоторые позиции и инвертированы цвета. Из-за этого видимо писатели не мучаются с поворотом, а без него неудобно пользоваться дисплеем.
Переменная rotation член класса, ее тоже надо запомнить (венгерская нотация наше все, да кто ж ее чтит…)
Маскируется, видимо, чтобы не установить невалидные значения. Так-то предохраняемся assert-ами, но в МК такое не прокатывает.
Вы правы. Наверное в этой экосистеме я ими еще не умею пользоваться. Пока сложность моих алгоритмов не требует необходимости ассерты расставлять.
Привычная реакция на сработавший ассерт - это аварийный останов программы с выводом в консоль аварийного условия. При запуске под отладчиком - точка останова на условии.
Как это выглядит на ардуинке? В консоли терминалки появится? А дальше висит или ребут? И сборка дебаг-релиз тоже управляемо прямо в “оболочке для блондинок”?
Возможны любые варианты. Просто мёртво висит, что-то делает (выводит в консоль или на экран, если есть, зажигает светодиоды, сохраняет несохраненные данные в еепром или на сд-карту), “а после виснет” или “а после продолжает работу”. Как напишете, так и будет работать.
Если в #define или в опциях компилятора определить макрос NDEBUG, то всё отключится, assert превратится в пустышку void(0).
Кстати, static_assert тоже отлично работает, я его тоже постоянно использую.
Я-то уж совсем поначалу смирился с детскостью оболочки. Даже попыток не делал, хватало “играть в шахматы в уме”, благо не сложный код пока (ну для меня).