PCF8535 - controller driver

        
При работе с контролером необходимо отправить блок  параметров настройки ЖКИ. 
Блок данных  передается в следующем блоке.

Блок состоит из 

(старта 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();