Пробую первый проект. Нужно вывести несколько изображений на экран SSD1309. Текст, линии и прочие функции рисуются правильно, но изображения со смещением (см. скриншот).
Чтобы сконвертировать изображения использовал https://javl.github.io/image2cpp/ . Возможно она неправильно конвертирует
Результат
исходные картинки (они белые, поэтому не видно, но копировать можно)
Чтобы сконвертировать изображения использовал https://javl.github.io/image2cpp/ . Возможно она неправильно конвертирует
Код (не весь):
U8G2_SSD1309_128X64_NONAME0_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=[I]/ 13, /[/I] data=[I]/ 11, /[/I] cs=[I]/ 10, /[/I] dc=[I]/ 9, /[/I] reset=*/ 8);
// 'vent', 15x15px
const unsigned char bitmap_vent [] PROGMEM = {
0x00, 0x70, 0x00, 0xf8, 0x71, 0xf8, 0xf9, 0xf8, 0xfb, 0xf0, 0xfb, 0x80, 0x7e, 0xe0, 0x3c, 0x78,
0x0e, 0xfc, 0x03, 0xbe, 0x1f, 0xbe, 0x3f, 0x3e, 0x3f, 0x1c, 0x3e, 0x00, 0x1c, 0x00
};
// 'wind_air', 27x20px
const unsigned char bitmap_wind_air [] PROGMEM = {
0x00, 0x1f, 0x00, 0x00, 0x07, 0xff, 0xfe, 0x00, 0x7f, 0xf1, 0xff, 0xc0, 0xfc, 0x00, 0x03, 0xe0,
0xc0, 0x00, 0x00, 0x60, 0xc0, 0x00, 0x00, 0x60, 0xc0, 0x00, 0x00, 0x60, 0xe1, 0x04, 0x10, 0xe0,
0x63, 0x8e, 0x38, 0xc0, 0x67, 0xdf, 0x7c, 0xc0, 0x61, 0x04, 0x10, 0xc0, 0x61, 0x04, 0x10, 0xc0,
0x61, 0x04, 0x10, 0xc0, 0x71, 0x04, 0x11, 0xc0, 0x32, 0x08, 0x21, 0x80, 0x32, 0x08, 0x21, 0x80,
0x3a, 0x08, 0x23, 0x80, 0x1a, 0xeb, 0xaf, 0x00, 0x02, 0x08, 0x20, 0x00, 0x02, 0x08, 0x20, 0x00
};
// 'air_direction', 41x51px
const unsigned char bitmap_air_direction [] PROGMEM = {
0x00, 0x00, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x0f,
0xff, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x80, 0x00, 0x00,
0x00, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x80,
0x00, 0x00, 0x00, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x0f,
0xff, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xe0, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f,
0xfc, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x00,
0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xff,
0xfc, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x00,
0x03, 0xff, 0xf8, 0x00, 0x00, 0xf8, 0x03, 0xff, 0xf8, 0x00, 0x01, 0xfe, 0x03, 0xff, 0xf0, 0x00,
0x03, 0xff, 0xc3, 0xff, 0xf0, 0x00, 0x07, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x07, 0xff, 0xff, 0xff,
0xe0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xff,
0xff, 0xff, 0xc0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x1f, 0xf7, 0xff, 0xff, 0xc0, 0x00,
0x3f, 0xe1, 0xff, 0xff, 0xc0, 0x00, 0x3f, 0xe0, 0x7f, 0xff, 0x80, 0x00, 0x7f, 0xe0, 0x1f, 0xff,
0x80, 0x00, 0x7f, 0xc0, 0x07, 0xff, 0x00, 0x00, 0xff, 0xc0, 0x01, 0xfe, 0x00, 0x00, 0xff, 0x80,
0x00, 0x78, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00,
0x00, 0x00
};
// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 480)
const int bitmap_allArray_LEN = 3;
const unsigned char* bitmap_allArray[3] = {
bitmap_air_direction,
bitmap_vent,
bitmap_wind_air
};
void setup(void) {
u8g2.begin();
}
void loop(void) {
u8g2.clearBuffer(); // clear the internal memory
u8g2.setBitmapMode(true);
u8g2.setDrawColor(1); // White
//wind air direction
u8g2.drawXBMP(56,2,27,20,bitmap_wind_air);
// vent power
u8g2.drawXBMP(56,24,15,15,bitmap_vent);
// air direction
u8g2.drawXBMP(86,2,41,51,bitmap_air_direction);
u8g2.sendBuffer(); // transfer internal memory to the display
delay(1000);
}
Результат
исходные картинки (они белые, поэтому не видно, но копировать можно)
Изменено: