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

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

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

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

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

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

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

Ответ
Опции темы
Непрочитано 01.01.2024, 08:21   #1
Devil Byte
Временная регистрация
 
Регистрация: 07.03.2019
Сообщений: 87
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Devil Byte на пути к лучшему
По умолчанию Скролинг содержимого на LCD nokia 5510

Приветствую всех! Всех с новым годом!!! Желаю всем побед и спокойствия.

Как я и говорил я только в самом начале пути изучения МК.
Камень аtmega 128, дисплей nokia 5510

Условно есть переменная и с ней происходят изменения. Как сделать так что бы она выводилась на дисплей в новой строке с сохранением прошлого результата на предыдущей. А после 6 строки(это максимум что лезет на дисплей), начинало скролится содержимое?
Я написал цикл. Строка меняется, но предыдущая строка затирается. Если убрать очистку дисплея, предыдущее содержимое остается, но получается эффект не скрола, а затирание построчно. Хочется получить прокрутку, наподобие как в меню, когда листаешь вниз.

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

PHP код:
int main(void)
{
    
displey_start(); // Запуск дисплея
    
    
while (1)
    {
        
int stroka// Переменная для указания дисплею номера строки
        
int d// переменная которая выводится с итерацией

        
if (d99999d++;
        if (
d++) stroka++;
        if(
stroka›=6stroka=0;
        
        
        
// создание буфера для переменной d  и вывод на дисплей
                
Lcd_clear();
        
char buff[20];
        
itoa(dbuff10);
        
Lcd_print(0strokaFONT_1X,(unsigned char *)buff);
        
Lcd_update();
        
_delay_ms(200);

    }

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

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

Сообщение от Godzilla82 Посмотреть сообщение
то создаёшь буфер на 6 строк
Та библеотека что у меня, не поддерживает. Пытался адафруит заюзать. но даже не запустился дисплей.
А как его создать? вот я создам массив int stroki [6] {} а как в него записывать содержимое переменной?

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

Ну всё зависит от хотелок. Если хотите, чтобы прокручивалось вниз, то перерисовывайте все 6 строк.

PHP код:
 
void display_data
(int d)
{
static 
int data[4];
static 
signed char index 0;
static 
signed char count 0;
signed char c,i;
data[index++] = d;
if(
index == 4index 0;
if(
count ‹ 4count++;
lcd_clear();
for(
0‹ countc++)  {
                            
lcd_gotoxy(0,c);
                            
index count c;
                            if(
‹ 0+= 4;
                            
printf("%d",data[i]);
                            }
}

void main(void)
{
unsigned char i;
lcd_init(20);
for(
1‹ 50i++) {
                        
display_data(i);
                        
delay_ms(500);
                        }

Godzilla82 вне форума   Ответить с цитированием
Непрочитано 01.01.2024, 17:07   #5
dgrishin
Почётный гражданин KAZUS.RU
 
Регистрация: 12.02.2013
Сообщений: 1,044
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
dgrishin на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Дисплей nokia 5510 - графический. Там нет всяких фишечек со скролингом, перемещением курсора и т. п которые есть у текстовых дисплеев.
Если к этому вопросу подходить по взрослому - надо в памяти контроллера организовать видеопамять как у текстовых дисплеев (на ней можно реализовать все функции текстовых дисплеев). И с какой то периодичностью передавать (через DMA ессно) определенный массив этой памяти в Nokia 5110. Это будет текущее окно видимости памяти виртуального текстового дисплея.
dgrishin вне форума   Ответить с цитированием
Непрочитано 01.01.2024, 17:13   #6
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Скролинг содержимого на LCD nokia 5510

Сообщение от dgrishin Посмотреть сообщение
Если к этому вопросу подходить по взрослому...
Человек спрашивает, как в массив int[] записывать содержимое переменной, а вы ему про DMA, которого нет в ATMEGA128.
Godzilla82 вне форума   Ответить с цитированием
Непрочитано 01.01.2024, 21:00   #7
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Дисплей Nokia 5510 - очень старый и очень примитивный, он не имеет аппаратной команды сдвига пиксельных строк, такой как Start Line в более современных дисплеях. Поэтому построчная прокрутка может быть реализована только полной перерисовкой всех текстовых строк.
Так же, микроконтроллер ATMega 128 очень древний и примитивный, никаких DMA в нем и в помине нету.
NewWriter вне форума   Ответить с цитированием
Непрочитано 02.01.2024, 00:48   #8
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,643
Сказал спасибо: 117
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Ну элементарно же роллинг строк делается! Но если таки надо по тексту вверх-низ мотать, то следует завести отдельно текстовый буфер и отдельно экранный. Могу тоже код скинуть, то там уже STM32 и DMA, которого в аврке нет.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума   Ответить с цитированием
Непрочитано 02.01.2024, 06:40   #9
Devil Byte
Временная регистрация
 
Регистрация: 07.03.2019
Сообщений: 87
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Devil Byte на пути к лучшему
По умолчанию Re: Скролинг содержимого на LCD nokia 5510

Сообщение от eddy Посмотреть сообщение
Ну элементарно же роллинг строк делается!
Как говорят - все просто когда знаешь). Но моих знаний пока что с жопку муравья.
Пока для моих условных задач хватает меги128 и такого дисплея, но не думал что автоматическая прокрутка содержимого вызовет такие трудности. В моем случае, это будет обычная переменная, которая будет либо расти, либо уменьшаться. но хочется видеть именно в таком режиме как я говорил(
Вложения:
Тип файла: zip LCD 3310 scroll проект в студии.zip (65.8 Кб, 0 просмотров)
Тип файла: zip atmega128 протеус.zip (26.8 Кб, 0 просмотров)

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

Сообщение от NewWriter Посмотреть сообщение
древний и примитивный
Согласен, но мне под мои задачи пока хватит его с головой, и думал что такого дисплея хватит( По итогам это оказалось целой проблемой.( Перейти на какй-то дисплей цветной на li 9341?
Devil Byte вне форума   Ответить с цитированием
Ответ

Закладки


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

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:24.


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