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

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

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

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

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

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

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

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

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

Вот такой код:
PHP код:
int main(void)
{
    
char buff[20];
    
unsigned int i;

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

    
while (1)
    {
        
// печатаем в строках 0..5
        
for (0‹ 6i++) {
            
itoa(ibuff10);
            
Lcd_print(0iFONT_1X, (unsigned char *)"*** Line X ***");
            
Lcd_print(9iFONT_1X, (unsigned char *)buff);
            
Lcd_update();
            
_delay_ms(500);
        }

        
_delay_ms(1000);

        
// сдвигаем все вверх построчно
        
for (0‹ 6i++) {
            
Lcd_scroll_up_8px(); // сдвиг на 1 строку вверх
            
Lcd_update();
            
_delay_ms(500);
        }

        
_delay_ms(1000);
    }


Поведение:
Видео:
j-Roger вне форума  
Сказали "Спасибо" j-Roger
Devil Byte (06.01.2024)
Непрочитано 06.01.2024, 12:59  
Devil Byte
Временная регистрация
 
Регистрация: 07.03.2019
Сообщений: 87
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Devil Byte на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Сообщение от j-Roger Посмотреть сообщение
P.S. Проверить на месте нет возможности.
Привет. Наконец-то работы убыло. В обще сделал как ты сказал. вроде все работает, но есть нюансы появляются как бы пустые строки между строк со значениями. не смог понять сем это вызвано.. Функцию скроллинга вызывал в разных местах. Вообще на досуге, когда прилечу домой хочу пробовать разбираться с тем как ты это с делал.. Спасибо!

Нажмите, чтобы открыть спойлер

PHP код:
#include ‹avr/interrupt.h›
#include ‹util/atomic.h›
#include ‹stdbool.h›
#include ‹stdint.h›
#include ‹inttypes.h›
#include ‹stdlib.h›
#include "n5110.h"


//-------------------------------------------------------------------------------------------------------------------------
void displey_start(void)                            // Активирую Порт B на выход, для того что бы активировать дисплей
{
    
DDRB  &= ~((1‹‹PINB1) | (1‹‹PINB2) | (1‹‹PINB3) | (1‹‹PINB4) | (1‹‹PINB5));
    
PORTB 0x00;
    
Lcd_init();
    
//Lcd_clear();
    
Lcd_update();
    
LcdContrast(62);
}


int istrokad;
int main(void)
{
    
displey_start(); // Запуск дисплея
    
    
while (1)
    {
        for (
i=0;i1;i++)
        {
            
d++;
            ++
stroka;
            if(
stroka›=6stroka=0;
        }
        
Lcd_scroll_up_8px();
        
//Lcd_clear();
        
char buff[10];
        
itoa(dbuff10);
        
Lcd_print(0strokaFONT_1X,(unsigned char *)buff);
        
Lcd_update();
        
_delay_ms(200);
    }

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

Сообщение от j-Roger Посмотреть сообщение
Вот такой код:
Огонь! всем спасибо огромное! Буду сидеть курить. Потому что без Вас я бы вряд-ли это сделал!
Devil Byte вне форума  
Непрочитано 06.01.2024, 14:31  
Devil Byte
Временная регистрация
 
Регистрация: 07.03.2019
Сообщений: 87
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Devil Byte на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Сообщение от j-Roger Посмотреть сообщение
Поведение:
Второй пример не совсем ясен, мне не удалось задействовать второй for, который для сдвига.
но получилась немного по другому:
Нажмите, чтобы открыть спойлер

PHP код:
int main(void)
{
    
char buff[20];
    
unsigned int i=0;
    
displey_start(); // Запуск дисплея
    
    // печатаем в строках 0..5
    
for (0‹ 6i++)
    {
        
itoa(ibuff10);
        
Lcd_print(0iFONT_1X, (unsigned char *)"*** Line X ***");
        
Lcd_print(9iFONT_1X, (unsigned char *)buff);
        
Lcd_update();
        
_delay_ms(500);
    }
    
i=+i// Присвоил i ее же значение после цикла печати 6 строк


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

    }

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

Ну и до кучи добавим функцию скроллинга на 8 пикселов вниз; для этого:

1) в файл n5110.h добавить прототип новой функции:
Прототип

PHP код:
void Lcd_scroll_down_8px (void); 

2) в файл n5110.c добавить определение новой функции:
Определение

PHP код:
/*
 * Имя                   :  Lcd_scroll_down_8px
 * Описание              :  Производит (в кэше) сдвиг данных на 8 пикселов вниз, очищает первую строку высотой 8 пикселов
 * Аргумент(ы)           :  Нет
 * Возвращаемое значение :  Нет
 *
 */
void Lcd_scroll_down_8px (void)
{
    
// здесь подразумевается высота одной строки = 8 пикселов, длина строки в байтах = LCD_X_RES
    // копирование данных внутри кэша для сдвига изображения на 8 пикселов вниз
    // куда: начальный адрес 1-й строки в кэше
    // откуда: начальный адрес 0-й строки в кэше
    // сколько: длина кэша без одной строки
    
memmove(&LcdCache[LCD_X_RES], LcdCacheLCD_CACHE_SIZE LCD_X_RES);

    
// очистка 0-й строки в кэше
    // начало: адрес начала 0-й строки в кэше
    // сколько: длина одной строки
    
memset(LcdCache0x00LCD_X_RES);

    
// Сброс указателей границ в максимальное значение
    
LoWaterMark 0;
    
HiWaterMark LCD_CACHE_SIZE 1;

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


Вот такой код выводит новое значение переменной в первую строку дисплея со сдвигом предыдущего содержимого вниз:
PHP код:
int main(void)
{
    
unsigned int d 10000// переменная которая выводится с итерацией
    
char buff[20];

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

    
while (1)
    {
        
itoa(d++, buff10);
        
Lcd_scroll_down_8px(); // сдвиг на 1 строку вниз
        
Lcd_print(00FONT_1X, (unsigned char *)"d=");
        
Lcd_print(20FONT_1X, (unsigned char *)buff);
        
Lcd_update();
        
_delay_ms(1000);
    }

Зачем это нужно?.. Так, на всякий случай ))

Успехов!
j-Roger вне форума  
Непрочитано 06.01.2024, 18:44  
Devil Byte
Временная регистрация
 
Регистрация: 07.03.2019
Сообщений: 87
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Devil Byte на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Сообщение от j-Roger Посмотреть сообщение
Зачем это нужно?
Если вы про прокрутку, то условно нужно при переборе смотреть на дисплей и ждать определенного события) и если оно произойдет, то визуально примерно можно будет определить какая итерация сработала)
Сообщение от j-Roger Посмотреть сообщение
со сдвигом предыдущего содержимого вниз:
Ну так тоже прикольно. но вроде как сдвиг содержимого вверх более воспринимаем, по крайней мере для меня. В общем спасибо Вам огромное)
Но если честно то я наверное в этот раздел вернусь еще не раз, так как на самом начале пути
Devil Byte вне форума  
Непрочитано 07.01.2024, 13:35  
Devil Byte
Временная регистрация
 
Регистрация: 07.03.2019
Сообщений: 87
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Devil Byte на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Сообщение от NewWriter Посмотреть сообщение
Например, UC1609 размером 192х64 пикс.
Скажите, а вы пробовали работь с дисплеями 240x128? Если да, то можете порекомендовать модель?
Devil Byte вне форума  
Непрочитано 07.01.2024, 14:54  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Имеете ввиду монохромный LCD? Да, конечно же. Winstar WG240128 на контроллере RA6963 (или T6963). Довольно старый дисплей, но большой диагонали, 5,1 дюйма. Работает как в текстовом режиме со встроенными шрифтами 6х8 и 8х8 (16 строк, 40 или 30 символов, в зависимости от ширины шрифта), так и в графическом режиме 240х128 точек. Интерфейс параллельный, 8 линий шины данных, 4 сигнальных линии. Есть распаянная на плате микросхема статического ОЗУ, позволяющая хранить несколько графических буферов.
Других монохромных ЖКД в таком формате я не встречал.

Кстати, сейчас глянул на Алиэкспрессе - клоны Винстара сейчас выпускаются под другими названиями, но с тем же самым контроллером RA6963 - https://aliexpress.ru/item/1005005665219634.html Оригинальный Winstar конечно дороже.

Так же, можно посмотреть и более современные дисплеи. Например, я использую графический 5-дюймовый 256х160 https://aliexpress.ru/item/32334740984.html или 3,2-дюймовый 256х128 https://aliexpress.ru/item/32825558941.html на контроллере ST75256, у него три вида интерфейса - SPI, I2C и параллельный (выбирается перемычками). Работает в монохромном или 2-битном (4 градации серого) режиме. Продается либо распаянным на плате, либо отдельно на гибком шлейфе, поскольку сам контроллер - CoG, размещен на стекле дисплея.

Последний раз редактировалось NewWriter; 07.01.2024 в 15:39.
NewWriter вне форума  
 

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

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

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, время: 22:25.


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