Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 02.01.2024, 07:56  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Сообщение от Devil Byte Посмотреть сообщение
Перейти на какй-то дисплей цветной на li 9341?
На маломощной Атмеге-128 такой дисплей просто не вывезет и будет жутко тормознуто работать. Ну шутка ли - кадр в 150 килобайт.
Атмега потянет только монохромные дисплеи, но более современные. Например, UC1609 размером 192х64 пикс. У него есть команда Set Start Line, которая сдвигает по кругу всё изображение по вертикали без перезагрузки картинки, только изменяя номер начальной строки.

Сообщение от eddy Посмотреть сообщение
роллинг строк делается!
Малость не так. Используется команда Set Start Line и подгружается часть строк второй картинки.
Прокрутка строк используется для анимационного эффекта смены "экранов" - Slide. Второе изображение постепенно вытесняет первое снизу или сверху. При прокрутке снизу вверх выдается команда Set Start Line на определенное число строк и сразу подгружается соответствующее число строк из начала второй картинки.

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

Сообщение от Devil Byte Посмотреть сообщение
будет обычная переменная, которая будет либо расти, либо уменьшаться. но хочется видеть именно в таком режиме
То есть вот так? Непростая это задача для начинающего. Такой эффект потребует перерисовки области экрана в позиции цифры, используя команды Set Column
Миниатюры:
Нажмите на изображение для увеличения
Название: Снимок экрана 2024-01-02 104618.jpg
Просмотров: 0
Размер:	25.6 Кб
ID:	179419  
Реклама:

Последний раз редактировалось NewWriter; 02.01.2024 в 08:49.
NewWriter вне форума  
Непрочитано 02.01.2024, 11:55  
Devil Byte
Временная регистрация
 
Регистрация: 07.03.2019
Сообщений: 87
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Devil Byte на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Сообщение от NewWriter Посмотреть сообщение
То есть вот так?
не совсем, то есть есть например 4 значное число, можно полностью затирать строку с ним. Так ка Вы написали в принципе мне ни к чему.
Сейчас число после каждой итерации движется вниз, оставляя за собой предыдущие значения на верхних строчках, но как только достигает шестой, перезапись начинается сверху(как на рисунке приложенном). А надо что бы последняя строка толкала остальные в верх затирая первую...
Сообщение от NewWriter Посмотреть сообщение
На маломощной Атмеге-128 такой дисплей просто не вывезет
Тут сильно не могу ничего сказать но вроде смотрел не мало видео где цепляют 3х дюймовые дисплеи, и в принципе для приемлемо работает. я конечно не стремлюсь пока к высоким частотам. Понимаю что там будет кадров 10-15.
Миниатюры:
Нажмите на изображение для увеличения
Название: Снимок экрана 2024-01-02 144948.png
Просмотров: 0
Размер:	25.1 Кб
ID:	179421  
Devil Byte вне форума  
Непрочитано 02.01.2024, 15:30  
dgrishin
Почётный гражданин KAZUS.RU
 
Регистрация: 12.02.2013
Сообщений: 1,045
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
dgrishin на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Сообщение от Devil Byte Посмотреть сообщение
Сейчас число после каждой итерации движется вниз, оставляя за собой предыдущие значения на верхних строчках, но как только достигает шестой, перезапись начинается сверху(как на рисунке приложенном).
Поизучайте описание библиотеки которую вы используете для подключения Nokiq5110.
Многовероятно там есть какой нибудь #dеfine который задает общее количество строк. Если это количество задать больше чем строк на дисплее то скролинг сам начинает работать. По крайней мере это выглядит логично.
dgrishin вне форума  
Непрочитано 02.01.2024, 16:16  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Скролинг содержимого на LCD nokia 5510

Выше я привёл код, который перерисовывает так, как вы хотите.
Godzilla82 вне форума  
Непрочитано 02.01.2024, 16:29  
Devil Byte
Временная регистрация
 
Регистрация: 07.03.2019
Сообщений: 87
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Devil Byte на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Сообщение от dgrishin Посмотреть сообщение
описание библиотеки
Попробовал посмотреть, там как бы нет именно строк, но в каждой функции реализована защита от выхода за пределы экрана по координатам, типа if ( x ›= LCD_X_RES || y ›= LCD_Y_RES) return OUT_OF_BORDER; Потом идет пересчет индекса смещения и вывод с верхней строки... но я без понятия как это переписать)
Devil Byte вне форума  
Непрочитано 02.01.2024, 16:33  
Devil Byte
Временная регистрация
 
Регистрация: 07.03.2019
Сообщений: 87
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Devil Byte на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Сообщение от Godzilla82 Посмотреть сообщение
Выше я привёл код, который перерисовывает так, как вы хотите.
Пробовал пока не получилось, буду еще пытаться
Devil Byte вне форума  
Непрочитано 02.01.2024, 16:50  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Скролинг содержимого на LCD nokia 5510

Сообщение от Devil Byte Посмотреть сообщение
Пробовал пока не получилось, буду еще пытаться
Что именно не получилось?
Godzilla82 вне форума  
Непрочитано 02.01.2024, 17:19  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Да нет, Nokia 5110 - это самый примитивный дисплей, без всяких наворотов.

PHP код:
/**
 * @brief Прокрутка строк вверх 
 * @param text - указатель на массив строк
 * @note Сктрока содержит максимум 10 элементов!
 */
void RollUpScreen(char *text)
{
    
char *text, *text 10;
    
    for(
int l 0‹ 5l++)
    {
        
memcpy(ds10); // копирование строки из нижней в верхнюю
        
s;
        
+= 10;
    }
}
/**
 * @brief Печать строки
 * @param text - указатель на массив строк
 * @param value - печатаемое число
 */
void PrintLine(char *textint value)
{
    
sprintf(text"%d"value);
}

/**
 * @brief Вывод переменной построчно с прокрутной вверх
 * @param text - указатель на массив строк
 * @param value - печатаемое число
 * @note Сктрока содержит максимум 10 элементов!
 */
void PrintValue(char *textint value)
{
    static 
int line 0;    // счетчик строк на экране

    /* Если строка последняя (её номер больше 5) */
    
if(line › 5)
    {
        
RollUpScreen(text);    // передвинуть строки экрана вверх, убирая первую
        
line--;                    // откатить номер строки назад
    
}

    
PrintLine(text 10 linevalue);    // Вывести текущую строку с числом
    
line++;
}

int main()
{
    static 
char text[6][10];    // строки для текста, 6 строк по 10 символов в каждой
    
int value 0;

    while(
1)
    {
        
PrintValue(text[0], value);
        
value++;

    
        
DisplayFullUpdate();
        
Delay_ms(300);
    }

Видео:
NewWriter вне форума  
Непрочитано 02.01.2024, 18:05  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 731
Сказал спасибо: 363
Сказали Спасибо 807 раз(а) в 379 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Если вписываться в парадигму библиотеки, используемую ТС, то можно добавить туда функцию сдвига буфера дисплея, как вариант, на 8 пикселов вверх.
Текст функции из вложения выглядит так :

PHP код:

/*
 * Имя                   :  Lcd_scroll_up
 * Описание              :  Производит в кэше сдвиг данных на 8 пикселов вверх, очищает последнюю строку высотой 8 пикселов
 * Аргумент(ы)           :  Нет
 * Возвращаемое значение :  Нет
 *
 */
void Lcd_scroll_up_8px (void
{
    
// здесь подразумевается высота одной строки = 8 пикселов, длина строки в байтах = LCD_X_RES
    // копирование данных внутри кэша для сдвига изображения на 1 строку (8 пикселов) вверх
    // куда копировать: начальный адрес 0-й строки в кэше
    // откуда копировать: начальный адрес 1-й строки в кэше
    // сколько копировать: длина кэша без одной строки
    
memcpy(LcdCache, &LcdCache[LCD_X_RES], LCD_CACHE_SIZE LCD_X_RES);
    
    
// очистка последней строки в кэше
    // начальный адрес: адрес начала последней строки в кэше
    // сколько очищать: длина одной строки
    
memset(&LcdCache[LCD_X_RES * ((LCD_Y_RES 8) - 1)], 0x00LCD_X_RES);
    
    
// Сброс указателей границ в максимальное значение
    
LoWaterMark 0;
    
HiWaterMark LCD_CACHE_SIZE 1;

    
// Установка флага изменений кэша
    
UpdateLcd TRUE;

Нужно добавить текст из вложения в файл n5110.c, а также добавить в файл n5110.h прототип этой новой функции void Lcd_scroll_up_8px (void); Использовать функцию можно перед печатью в последнюю строку дисплея, когда нужен "скроллинг".
Для сдвига вверх на 16 пикселов - вызвать функцию 2 раза.

P.S.
Проверить на месте нет возможности.
Вложения:
Тип файла: txt addition.txt (1.6 Кб, 0 просмотров)
j-Roger вне форума  
Непрочитано 03.01.2024, 02:58  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 731
Сказал спасибо: 363
Сказали Спасибо 807 раз(а) в 379 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Для проверки функции скроллинга главная функция main() может выглядеть так:
PHP код:
int main(void)
{
    
unsigned int d 0// переменная которая выводится с итерацией
    
char buff[20];

    
displey_start(); // Запуск дисплея

    // вывод в строку 4
    
itoa(d++, buff10);
    
Lcd_print(04FONT_1X, (unsigned char *)buff); // строка 4
    
Lcd_update();
    
_delay_ms(1000);

    
// вывод в строку 5 без скроллинга
    
itoa(d++, buff10);
    
Lcd_print(05FONT_1X, (unsigned char *)buff); // строка 5
    
Lcd_update();
    
_delay_ms(1000);

    while (
1)
    {
        
// постоянный вывод в строку 5 со скроллингом
        
itoa(d++, buff10);
        
// ------------------
        // выполнить скроллинг вверх ПЕРЕД печатью в последнюю строку
        
Lcd_scroll_up_8px(); 
        
// ------------------
        
Lcd_print(05FONT_1X, (unsigned char *)buff); // строка 5
        
Lcd_update();
        
_delay_ms(1000);
    }

Как-то так..

UPD
Вот поведение этого кода в железе:
Видео:

Последний раз редактировалось j-Roger; 03.01.2024 в 18:15.
j-Roger вне форума  
Сказали "Спасибо" j-Roger
Devil Byte (06.01.2024)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC16F876a+Nokia 5110 LCD+PICKit2 AndGrig PIC 31 02.11.2016 09:18
Книги dosikus Делимся опытом 11242 29.12.2015 23:45
Помогите подключить LCD Nokia 3310 vsvetlov Микроконтроллеры, АЦП, память и т.д 0 05.10.2007 10:12
Подключение LCD Nokia 3310 vsvetlov Микроконтроллеры, АЦП, память и т.д 0 24.09.2007 21:25
Не могу разобраться с LCD init_sub Информация по радиокомпонентам 6 02.04.2004 04:40


Часовой пояс GMT +4, время: 00:16.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot