Cepгeй Бopщ (29.03.2012 12:52, просмотров: 128) ответил FDA на С этим тоже разобрался! Просто немного запутался с битами control byte. Теперь всё работает!
Да, наверное мне стоило добавить в первое сообщение кроме инициализации еще и немного вывода: void st7548_t::refresh()
{
if(!PoweredOn)
power_on();
// update LCD area
for(y_t y_cnt = Buffer.Update.Bottom; y_cnt < Buffer.Update.Top; ++y_cnt )
{
uint8_t SetCursorCmd[2];
SetCursorCmd[0] = SET_Y | y_cnt;
SetCursorCmd[1] = SET_X | Buffer.Update.Left;
if(!I2C.write(CMD_TILL_STOP, SetCursorCmd, sizeof(SetCursorCmd)))
return;
if(!I2C.write(DATA_TILL_STOP,
&Buffer.Data[y_cnt][Buffer.Update.Left], Buffer.Update.Right - Buffer.Update.Left))
return;
}
Buffer.Update.Left = SIZE_X;
Buffer.Update.Right = 0;
Buffer.Update.Bottom = SIZE_Y;
Buffer.Update.Top = 0;
}