Перейти к содержанию

sanyasanya

Members
  • Постов

    8
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные sanyasanya

  1. ...поставь контрастность 80...

    Да, надо попробовать и посмотреть, попробуй эту прошивку p.rar

    А почему не используете дисплеи нокии 1616, они цветные и на чуточку дороже 1202

  2. Собрал вторую версию, все работает как часы! Но у меня проблема с контрастом дисплея. Значит, проблема состоит в том, что "черная точка" довольно насыщенная, а вот "белое пространство" совсем не белое, а серое (простите за примитивный говор). Вот ломаю голову, в чем может быть проблема. Напряжения все согласно схемы. Еще заметил, что фон "сереет" через долю секунды после выхода из меню или другой смены картинки. Все детали по номиналу, кроме електолитов (номинал больше чем на схеме). Присмотрел, что в 4й версии есть регулировка контраста - может и во второй можно программно подкрутить? Или проблему в другом месте искать? Заранее спасибо.

    LCD_PORT |= tmp; //rst = 1;

    lcd_write(CMD,0x20); //- write VOP register

    lcd_write(CMD,0x90); // контраст 0x80 0x9f --------------------------------------- тут подбирай от 80 до 9f

    lcd_write(CMD,0xA4); //- all on/normal display A4/A5

    lcd_write(CMD,0x2F); //- Power control set(charge pump on/off)

    lcd_write(CMD,0x40); //- set start row address = 0

    lcd_write(CMD,0xb0); //- set Y-address = 0

    lcd_write(CMD,0x10); //- set X-address, upper 3 bits

    lcd_write(CMD,0x00); //- set X-address, lower 4 bits

    lcd_write(CMD,0xC8); //- mirror Y axis (about X axis)

    lcd_write(CMD,0xa1); // Invert screen in horizontal axis

    lcd_write(CMD,0xac); //- set initial row (R0) of the display

    lcd_write(CMD,0x07);

  3. ...А мне так помогло...

    Интересный подход, а это минимальные рабочие значения?

    нет, и на 5мс работает

    крену на три вольта не использую а с пяти вольт последовательно два диода 4147 и к индикатору

  4. ...частота контроллера в 2 раза ниже...

    Интересный момент, а изменением задержки описанной мною выше не пробовали запустить на частоте 8МГц?

    Хотя если визуально на 4МГц вывод на дисплей не тормозит то можно использовать и на такой частоте, в программе нет каких либо принципиальных временных привязок.

    Если есть желание то есть еще одно место где можно попробовать поковырять, в функции

    void lcd_write(char cd,unsigned char c)

    Есть строка

    delay_us(20); //Delay10TCYx(20);

    Это задержка между отпрявляемыми командами, в 4-й версии стоит 35, этот параметр похоже тоже нужно подбирать под конкретный дисплей.

    А мне так помогло

    void lcd_init(void){

    unsigned char tmp;

    tmp = 1<<cs; //cs = 1;

    LCD_PORT &= tmp;

    delay_ms(25);

    tmp = 1 << rst; //rst = 0;

    LCD_PORT &= ~ tmp;

    delay_ms(25); // 5mS so says the stop watch(less than 5ms will not work)

    tmp = 1<<rst;

    LCD_PORT |= tmp; //rst = 1;

    delay_ms(25);

    lcd_write(CMD,0x20); //- write VOP register

    lcd_write(CMD,0x90); // контраст 0x90 0x9f

×
×
  • Создать...