Arduino Mini пытаюсь поженить с графическим WIN25664 на SSD1322.
- Войдите на сайт для отправки комментариев
Всем бобра! :)
Возникла у меня задача запустить WIN25664 на про мини. Подключение по 4 WIRE SPI.
Ну у меня без приключений не бывает.Началось все с того, что два дня он не хотел работать, ни с одной библиотекой. Ни с u8glib , ни с хваленой (мною) u8g2. Ни один пример не зажег даже пикселя.
Производитель не то, чтобы просто нафиг послал, но дал какую-то йебулу, типа демо код, на ХЗ какой проц и ХЗ какое подключение. Ну, с горем пополам перевел я тот код на нормальный человеческий ардуино язык. И, заработало! :) Но полезли другие вопросы:
Например такая функция отправки байта данных:
void write_data(unsigned char DATA) { unsigned char bMask; PORTB|=0b00000010;//DC=1; PORTB&=0b11111011;//CS=0; for (bMask = 0x80; bMask; bMask >>= 1) { ( DATA & bMask)? PORTB|=0b00001000: PORTB&=0b11110111; PORTB&=0b11011111;//SCL = 0; PORTB|=0b00100000;//SCL = 1; } PORTB|=0b00000100;//CS=1; }
Стоит ли, в плане быстродействия, переводить ее на аппаратный SPI и там на уровне регистров управлять, или это трусишное ( true C-шное) решение имеет право на существование?
И потом что-то тяжело мне ложится в мозг адресация пикселей у SSD1322. Я правильно понял, что командой 0х15 задаются начальный и конечный пиксель в строке, потом командой 0х75 задается начальная и конечная строка, потом дается команда на запись 0х5С и пошли писать байты данных в графическую RAM? А чего писать-то? писать байт, в котором младший полубайт относится к яркости свечения пикселя, на котором стоит указатель индексации, а второй полубайт запишется в следующий пиксель?
Подскажите плз, а то каша в голове.... :)