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

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

Добавлено: Ср авг 13, 2014 23:29:27
DataLife
Ребята, доброго времени суток.

Решил я по эксперементировать с дисплеем от Nokia 5510 (он же 3310).
Скачал все необходимые файлы и демо-прошивки. Для начала залил их, дабы проверить правильность подключения.
Дисплей завёлся и показывал всё верно. Подошла прошивка для оригинальной модели дисплея.

Теперь решил смастерить что-то своё: взял часть кода из предложенной программы, выкинул лишнее. Теперь должна выводиться только одна строчка, в конце которой должны постоянно увеличиваться значения. Всё просто.
Однако, CVAVR что-то сильно заупрямился. Ругается такими бранными словами:

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

Linker error: global RAM variables size: 1802 bytes is too large
Или лыжи не едут, или ... таблица АСКИ засоряет всю память RAM ... Но как у всех работают проекты на АТмега8, если памяти не хватает на всю таблицу ? ...

Вот тут и возникает вопрос, как её правильно сократить? Просто выкинуть неиспользуемые символы (строки)?

Попробовал удалить неиспользуемые символы. Что-то этот вариант не катит, компилятор "проглатил" такую версию, но экран молчит.

Вот код:
Спойлер

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

/*****************************************************
ATmega8
4,000000 MHz
*****************************************************/

#include <mega8.h>

#include <delay.h>
#include <stdlib.h>
#include <stdio.h>

#include <n3310lcd.c>

void main(void)
{
unsigned char i;

LcdInit();

while (1)
    {
    LcdClear();

    for (i=0; i<100; i++)
        {
        sprintf (lcd_buf, "Буфер=%u", i);
        LcdString(1,1);
        LcdUpdate();
        delay_ms(500);
        }
        
    };
}

Вопрос "Драйвер для LCD от Nokia 3310"

Добавлено: Сб янв 10, 2015 19:22:31
Pin-JT
Драйвер для LCD от Nokia 3310
При компиляции в "CV AVR" вылетает ошибка:
Изображение

Котаны, как поправить??? :dont_know:

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

Добавлено: Ср янв 21, 2015 21:05:30
Aheir
А что собираете-то? Свое или из статьи?

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

Добавлено: Пн апр 20, 2015 15:35:05
coding
Народ, для AvrStudio никто не переписал драйвер?

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

Добавлено: Ср апр 22, 2015 11:46:07
coding
Пробую сам перевести. Вроде все понятно, кроме подключения 2х пинов:
#define LCD_SS_PORT PORTD // ChipSelect SPI, должен быть соответствующий пин аппаратного SPI и настроен на выход
Что это за нога дисплея?
И эта
#define LCD_CPORT PORTD // Chip-Select; любой пин любого порта
Какая из них должна быть задействована при программном spi?
спасибо

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

Добавлено: Вт май 05, 2015 10:00:33
delphiec
Действительно есть вопрос по поводу порта
#ifndef SOFT_SPI
#define LCD_SS_PORT PORTB // ChipSelect SPI, должен быть соответствующий пин аппаратного SPI и настроен на выход
#define LCD_SS_DDR DDRB
#define LCD_SS_PIN 0
#endif

Так как по схеме включения используется всего 5 пинов на МК, и если смотреть на аппаратные, то SS подключается к D/C на дисплее, а в конфиге он первым обозначен.
Как быть?

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

Добавлено: Вт май 05, 2015 17:00:54
delphiec
При подключении любой версии драйвера возникает куча ошибок, IDE AtmelStudio 6.
I need help :))

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

Добавлено: Вт ноя 10, 2015 12:39:27
Freezer_s
coding писал(а):Пробую сам перевести. Вроде все понятно, кроме подключения 2х пинов:
#define LCD_SS_PORT PORTD // ChipSelect SPI, должен быть соответствующий пин аппаратного SPI и настроен на выход
Что это за нога дисплея?
И эта
#define LCD_CPORT PORTD // Chip-Select; любой пин любого порта
Какая из них должна быть задействована при программном spi?
спасибо
Списался с Автором, для тех кто как и я не разобрался даю пояснения:

//LCD Port & pinout setup. Примечание: порты с "кривой" адресацией (типа порт G и т.п.) не поддерживаются


#define LCD_RST_PORT PORTA // (RST) сброс экрана; любой пин любого порта
#define LCD_RST_DDR DDRA
#define LCD_RST_PIN 0

#define LCD_CPORT PORTA // (SCE) Chip-Select; любой пин любого порта
#define LCD_CDDR DDRA
#define LCD_CPIN 1

#define LCD_DC_PORT PORTA // (D/C) выбор команда-данные; любой пин любого порта
#define LCD_DC_DDR DDRA
#define LCD_DC_PIN 2

#define LCD_MOSI_PORT PORTA // (SDIN) выход данных SPI, должен быть соответствующий пин аппаратного SPI, если он используется
#define LCD_MOSI_DDR DDRA
#define LCD_MOSI_PIN 3

#define LCD_CLK_PORT PORTA // (SCK) тактирование SPI, должен быть соответствующий пин аппаратного SPI, если он используется
#define LCD_CLK_DDR DDRA
#define LCD_CLK_PIN 4


#ifndef SOFT_SPI // это читается как SOFT_SPI НЕОПРЕДЕЛЕН! если SPI программный то тут ниче не трогаем!!!
#define LCD_SS_PORT PORTB // ChipSelect SPI, должен быть соответствующий пин аппаратного SPI и настроен на выход
#define LCD_SS_DDR DDRB
#define LCD_SS_PIN 0
#endif

тоесть все что находится после строчки #ifndef SOFT_SPI относится ТОЛЬКО К АППАРАТНОМУ SPI и если протокол программный то эти строчки не имеют значения!

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

Добавлено: Вт дек 08, 2015 15:20:40
Airatius
Прошу прощения, встал на те же грабли при компиляции с файлом n3310lcd.o
Проект свой, использовал библиотеку автора.
Вроде ничего не напутал.
Прошу ткнуть носом.
Много раз прикручивал чужие библиотеки к своим проектам, но с таким в первый раз столкнулся.
Спасибо!

P.S. Проект полностью прилагаю.
3PL.zip
(133.22 КБ) 257 скачиваний

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

Добавлено: Сб янв 16, 2016 17:20:32
Aheir
Попробуйте собрать под другой версией CVAVR. Еще вариант - скопируйте все соlержимое драйвера в main.c и посмотрите, как соберется.
В каких-то проектах сталкивался с подобной ошибкой, вроде бы было как раз при переходе на более свежую версию CVAVR'a.

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

Добавлено: Ср апр 13, 2016 15:12:55
Spinaker
Господа, прочитал всю ветку... ...у меня два вопроса:
1. что считается "второй" версией библиотеки. В той, которую я скачал (в ) define SOFT_SPI отсутствует. Вывод на дисплей (в Протеусе) происходит со сдвигом по горизонтали нижней части изображения.
2.где, все-таки, скачать "правильный" pictures.c
Спасибо.

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

Добавлено: Ср апр 13, 2016 15:57:54
Aheir
Если скачать драйвер версии 2 в самом низу статьи , то искомая строчка

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

#define SOFT_SPI 1	// если определено - используем программный SPI, иначе - аппаратный
там таки есть, проверил...

За Протеус ничего не скажу.

Не знаю насчет правильного picture.c, но свой я, по-моему, нигде не выкладывал... А, можно, например, глянуть в Дозиметре, там должен быть)

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

Добавлено: Чт апр 14, 2016 13:10:21
Spinaker
Спасибо за помощь! В софтовом варианте пример работает... в аппаратном же картинка (в протеусе) плывет слева направо. Строку "SPCR = SPCR_val;" в библиотеке для аппаратного режима раскомментировал, иначе инициализация не проходила. С "pictures.c" тоже разобрался - это должен быть текстовый файл-библиотека с "оцифрованной" картинкой 1110100100... Демки от автора "_demo 3310 chinese.hex" отображаются корректно и они, скорее всего, реализованы аппаратно. Что-то, по-моему в библиотеке для аппаратного режима "недокручено" или есть еще настройки, которых пока я не нашел... Пробовал снижать скорость передачи данных, игрался с разрешением экрана по Х - не помогло... //#define china тоже не рулит.. Использую CVAVR 2.05 Пока...тупик..

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

Добавлено: Вт июл 25, 2017 22:05:21
DataLife
Смотрю год никто не поднимал эту тему, поиграю в археолога.

Завалялся у меня дисплейчик от нокия 5110, купленый давным-давно на E-bay.

Вот такой:
Изображение

Когда только его купил, помню игрался и вставлял вашу библиотеку версии 2, всё работало...

Теперь уже стоит задача сделать конкретное устройство с его участием, а не выходит...

Вот такие вот некрасивости получаются.

Изображение Изображение

На дисплей выводится просто прогресс-бар с заполнением 50% (для теста). Место вставки - строка 1.

Как видно, первая строка смещена как вниз, так и вправо. Так же, есть мерцание, примерно 3 Гц.

Из настроек были произведены только настройки портов. Пробовал тыкать и китай-версию и оригинал, нет эффекта.

Мк - Мега8, 8 МГц.

В данной ветке кто-то уже боролся с мерцанием, подскажите как?
И, самое важное, как убрать косяк положения строк?

#update
Пробовал компелировать под разными версиями CVAVR: и 2,05 и 3,12 - нет эффекта. Мерцает и всё смещено.

Могу ещё заметить, что при печати строк каждая смещается на определённое кол-во точек и получается некая лесенка. Если строка переполняется - её продолжение идёт с края дисплея, как и должно быть.

Основной код до боли простой:

LcdBarLine(1, 50);
LcdUpdate();

#update 2

Нашёл своё сообщение тут от 14-го да, вверху странички.
Я писал, что дисплей нормально работает на демо-прошивке, причём "под оригинал". Залил, проверил - да.... Так и есть ... Мистика...

#update 3

Попробовал аппаратный SPI, не помогло. Даже версия драйвера 1 не помогла. Однако на ней пропали мерцания, снова мистика.

Вот ступенечки: Три строки, начало в первой позиции.
Изображение Изображение