Страница 3 из 6

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пн июл 25, 2011 14:33:14
sachok
Испытал библиотеку на экране 3410, там все тоже, просто больше разрешение. Основная проблема что у меня возникла - это скорость програмного SPI. Для сравнения можно посмотреть видео.
hard SPI
soft SPI
Ну и стоит обратить внимание на то как выглядит батарейка.

Re: Драйвер для LCD от Nokia 3310

Добавлено: Вт сен 13, 2011 15:14:12
neid
Всем привет! Решил покурить данную статью http://radiokot.ru/articles/29/, взял за основу драйвер второй с поправками(внизу статьи) и исходники, переписал вывод информации для двух ds18b20 и запустил в Протусе. Вот что получилось:
Изображение мало того это дело все еще мигает в Протусе, появитяс пропадет, появится пропадет.
Думал в Протусе че то не так, собрал в железе таже фигня, при чем надпись "Термометр" очень тусклая, инфа с датчиков четкая, но не мигает уже
В чем причина может быть. Пробывал закоментить #define china 1, при компиляции ошибка появляется(в форуме кто то упоминал)
вот выложил исходники свои, помогите советом.

Re: Драйвер для LCD от Nokia 3310

Добавлено: Вт сен 13, 2011 18:56:50
Aheir
Если отличается "яркость" надписей на экране, значит, часть экрана Вы обновляете через стирание, а часть - нет... Пока только такая мысль в голову приходит. Если отображение по сути корректное, то china здесь не при чем, оно не для того.

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пт сен 16, 2011 21:33:30
neid
Aheir писал(а):Если отличается "яркость" надписей на экране, значит, часть экрана Вы обновляете через стирание, а часть - нет... Пока только такая мысль в голову приходит. Если отображение по сути корректное, то china здесь не при чем, оно не для того.
Разобрался, все коректно выводится и все одного оттенка, осталось только мерцание изображеняи, в чем причина понять не могу. :cry:

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пт сен 16, 2011 22:38:14
Aheir
Шо за мерцание?

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пт сен 16, 2011 22:46:00
neid
Aheir писал(а):Шо за мерцание?
на доли секунду пропадает избражение, прям на очень маленькие доли. и с определенной частотой, поэтому получается мерцание.
Вот еще раз выложу свой исходник поправленный и модель в протусе.

Re: Драйвер для LCD от Nokia 3310

Добавлено: Сб сен 17, 2011 19:30:44
Aheir
Такое встречал, только когда сам косячил с программой... Таки похоже, что что-то с обновлением экрана...

Re: Драйвер для LCD от Nokia 3310

Добавлено: Ср сен 21, 2011 09:45:18
neid

Код: Выделить всё

while (1)
      { 
        delay_ms(50);   // задержка для устранения дребезга контактов кнопок и она же - шаг изменения значений яркости 
        // чтобы режим не менялся каждые 50mS, при нажатии на кнопку разрешаем только одно изменение режима
        if (Mode_Change_Enabled)
        {
            if (MODE_Button)                        // если нажата кнопка смены режима 
            {  
                if ((++Mode) == 3) Mode = 0;   // меняем режим по кольцу
                Mode_Change_Enabled = 0;       // запрещаем при нажатой кнопке повторную смену режима
            };
        }
        // когда кнопка отжата, опять разрешаем смену режима
        else if (!MODE_Button) {Mode_Change_Enabled = 1;};
        
        
        LcdClear();
        switch (Mode)                                   // если ручной режим
        { 
            case Manual:
            {   
                
                sprintf (lcd_buf, "ЯРКОСТЬ");LcdString (5,1);
                                               
               
               if (UP_Button)                           // если нажата кнопка увеличение яркости
                    {   
                        if (OCR1A < 255) OCR1A++;
                        
                    };
                if (DOWN_Button)                      // если нажата кнопка уменьшения яркости
                    {
                        if (OCR1A) OCR1A--;
                    };
                
                /****Заполняем шкалу по процентам****/
                x1=((OCR1A*100)/254); //Расчет % яркости
                x2=x1;                //Переменная двывода % яркости
                x1=(x1*83)/100;       //Расчет заполенния по % яркости относительно Х
                
                LcdLine (1,34,x1,34,2);  //
                LcdLine (1,35,x1,35,2);  //Рисуем заполение шкалы
                LcdLine (1,36,x1,36,2);  //
                
                
                LcdLine (0,32,0,37,2);    //
                LcdLine (83,32,83,37,2);  //  Пустая шкала
                LcdLine (0,32,83,32,2);   //
                LcdLine (0,37,83,37,2);   //
                /****************************************/
                
                sprintf (lcd_buf, " <          >");LcdString (1,6); //Знаки больше и меньше по краям экрана
                sprintf (lcd_buf, "%i",x2);LcdStringBold (6,3);     //Вывод процента яркости
                LcdUpdate();
                delay_ms(10);
                
                break;
            }; 
            LcdMode (2);
            
            case Auto:                              // авто тремрметр и вольтметр
            {   
            
                ind=((100.0*(adc_data[0]<<2))/204)*4;   //Расчте напряжения 
                
              
                sprintf (lcd_buf, " ( Термометр");LcdString (1,1); //Символ ( это часть значки термометра

                temperature(); //Вызов функции температурной

                /*ПЕРВЫЙ ДАТЧИК*/
                sprintf (lcd_buf, " )  IN %i'C", temper[0]); LcdString(1,2);  //вывод температуры 1ого датчика, символ ) это часть значки термометра

                /*ВТОРОЙ ДАТЧИК*/
                sprintf (lcd_buf, " *  OUT %i'C", temper[1]); LcdString(1,3); //вывод температуры 2ого датчика, символ * это часть значки термометра

                #asm("sei")
                sprintf (lcd_buf, "Вольтметр");LcdString (1,5); 
                sprintf (lcd_buf, "  %u.%uV",ind/100,ind%100);LcdString (1,6);  //Вывод напряжения

                LcdBar(65, 27, 75, 45, 10*(3+1));   //Вывод значка батареи
                LcdUpdate();
                delay_ms(10);
                
                
                break;          
            };
            LcdMode (2);
            
            
            case Max:    
            {  
                
                sprintf (lcd_buf, "Режим 3",); LcdString(1,2);  //пока не придумал третий режим
                LcdUpdate();
                delay_ms(10);
                
                break; 
            };
            LcdMode (2);
        };
      }
что не так делаю?

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пт сен 23, 2011 15:32:06
Aheir
Зачем LcdClear(); в основном цикле каждые 50 мс? Отсюда и мерцание.... Да и LcdMode (2); не нужно постоянно дергать...
LcdClear(); физически очищает экран, для очистки только буфера напишите свою функцию или дождитесь новой версии от меня)

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пн сен 26, 2011 18:48:38
neid
Aheir писал(а):Зачем LcdClear(); в основном цикле каждые 50 мс? Отсюда и мерцание.... Да и LcdMode (2); не нужно постоянно дергать...
LcdClear(); физически очищает экран, для очистки только буфера напишите свою функцию или дождитесь новой версии от меня)
Разобрался с библиотекой! Все мерцаний нет, работает!)))
Сненерировал картинку не знаю как её вывести?
почему файл рисунка не выкладываете, или объясните как картину выводить?

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пн сен 26, 2011 20:07:33
BigallS
neid писал(а): Разобрался с библиотекой! Все мерцаний нет, работает!)))
Сненерировал картинку не знаю как её вывести?
почему файл рисунка не выкладываете, или объясните как картину выводить?

Вот здесь пример посмотри, там картинка есть http://we.easyelectronics.ru/lcd_gfx/bi ... -3310.html

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пн сен 26, 2011 22:25:49
Aheir
Есть примеры вывода картинки:
http://radiokot.ru/circuit/digital/measure/34/

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пт окт 07, 2011 19:07:40
Aheir
Здесь как бе обсуждается вполне конкретная реализация из соответствующей статьи, Ваш пример был бы в кассу в другой теме форума по этому экрану (она есть в разделе по микроконтроллерам)

Re: Драйвер для LCD от Nokia 3310

Добавлено: Чт ноя 10, 2011 13:07:14
CanceR
Здравствуйте. Помогите перевернуть экран. Через функцию LcdUpdate или может есть команда аппаратного переворачивания, в даташите я не нашел. Экран влезает в мою коробочку тока контактами вниз. Строчки символов перевернуты. Заранее спасибо.

Re: Драйвер для LCD от Nokia 3310

Добавлено: Чт ноя 10, 2011 16:42:18
-=Orion=-
CanceR писал(а):Здравствуйте. Помогите перевернуть экран. Через функцию LcdUpdate или может есть команда аппаратного переворачивания, в даташите я не нашел. Экран влезает в мою коробочку тока контактами вниз. Строчки символов перевернуты. Заранее спасибо.
перевернуть шрифт

Re: Драйвер для LCD от Nokia 3310

Добавлено: Вс окт 14, 2012 00:12:08
Monchik
Компилятор CV2.05 не понимает директиву #elif. Написал ему #else. Так, вроде, работает.

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пт мар 01, 2013 04:16:46
Pa5ha
Не завелось у меня ничего почему-то. Пытался дисплей от нокии 6030 заюзать - мертв. Подпаял от 3310 оригинальный, с надписью. Тоже признаков жизни не подает. На порты подпаяны светодиоды. Моргают - вывод идет. Мега питается от 5в, дисплеи от 3.3 l78l33, к портам подпаяны через делители 2кОм + 3.3 кОм.
Куда потыкать тестером даже не знаю.

Re: Драйвер для LCD от Nokia 3310

Добавлено: Пт мар 01, 2013 21:03:50
valexus
Ну светодиоды с портов лучше убрать, сигнал они конкретно искажают. И еще проверь напряжение на кондере вольтдобавки дисплея, там около 9 вольт должно быть.

Re: Драйвер для LCD от Nokia 3310

Добавлено: Вс мар 03, 2013 01:04:21
Pa5ha
Светодиоды? Хм, окай )
Кондер, который 4.7 мкф на 7, 8 ногах висит? Ок.

Вообще, оказалось, что у меня одна нога была не пропаяна. Но результат после исправления не поменялся. На контактах дисплея напруга есть, но при подаче питания он никак не реагирует. Мелтовский когда заводил - там хоть развертка сразу появлялась, было видно, что дисплей отреагировал, хоть и не инициализирован и ничего не показывает.

Re: Драйвер для LCD от Nokia 3310

Добавлено: Вт мар 05, 2013 22:02:33
Aheir
А дисплей-то жив? Есть уверенность? Вообще, так, чтобы совсем ничего не показывал, не бывает. Ищите косяки с подключением и настройкой в программе.