При работе с контролером необходимо отправить блок параметров настройки ЖКИ.
Блок данных передается в следующем блоке.
Блок состоит из
(старта i2c) (передачи данных для настройки ЖКИ) (стопа i2c)
Только потом пересылаем блок данных
(старта i2c) (передача последовательности данных на ЖКИ) (стопа i2c)
я на этом несколько дней голову ломал, как это так в доке написано выполни такую-то последовательность и будет все отлично.
Не совершайте моей ошибки.
WriteI2C- процедура отправки через протокол i2c, каждый решает самостоятельно.
В последней итерации программы я сначала создаю стек, а потом отправляю
все, взял контролер с i2c интерфейсом.
StartI2C();
WriteI2C(LCD_ADDR); // адрес 0x78
WriteI2C(0x00); // control byte
WriteI2C(0x01); // на основн стр
// WriteI2C(0x24);
// WriteI2C(0X10); // PD = 0, V = 0; горизонтальная адресация
WriteI2C(0X12); // PD = 0, V = 1; вертикальная адресация
// WriteI2C(0X40); //
// WriteI2C(0X80); //
WriteI2C(0x0E); //
// на стр 110
WriteI2C(0X12); // BIAS = 1/9
WriteI2C(0X06); // D = 1, E = 0;
WriteI2C(0X84); // MUX = 1/65
// WriteI2C(0X24); // IB = 1
// WriteI2C(0X20); // IB = 0
// WriteI2C(0X08); // MX = 0, MY = 0;
// WriteI2C(0X0C); // MX = 1, MY = 0;
WriteI2C(0X0E); // MX = 1, MY = 1;
// WriteI2C(0X0A); // MX = 0, MY = 1;
WriteI2C(0x01); // на основн стр
// на стр 101
WriteI2C(0X0D); //
WriteI2C(0X04); //
WriteI2C(0X09); // S[1;0] = 01, mul factor = 3
WriteI2C(0xb1); // установка напряженияB4
WriteI2C(0X05); // PRS = 0, Vlcd programing range
WriteI2C(0X0A); // S[1;0] = 10, mul factor = 4
WriteI2C(0X12); //
WriteI2C(0X0B); // S[1;0] = 11, mul factor = 5
// WriteI2C(0X06); // PRS = 1, Vlcd programing range high
WriteI2C(0x01); // на основн стр
// на стр 011
WriteI2C(0X0B); //
WriteI2C(0X05); // DM = 1
WriteI2C(0X58); // TRS = 1, BRS = 1;
WriteI2C(0x01); // на основн стр
StopI2C();