roboforum.ru

Технический форум по робототехнике.

LCD 3310 Вывод информации

LCD 3310 Вывод информации

Raf00084 » 06 июл 2009, 21:16

Кому не жалко времени, помогите!!!
Подключил дисплей от нокии, инициализировал, нарисовал рамку по краям дисплея, могу выводить символы разные из библиотеки, но вот сейчас сижу и думаю :crazy: ВОПРОС: как вывести значение переменной, например peremennaya=12345, тоесть как мне разложить на числа 1,2,3,4,5 и по очереди вывести их на дисп. в нужной точке, или есть другой способ вывести данное значение на экран (ведь в библиотеке числа от 0 до 9) :no: .
Спасибо!
если надо скинуть библиотеку или код пишите, но я думаю и так все понятно.

Re: LCD 3310 Вывод информации

Duhas » 06 июл 2009, 21:27

если не в курсе что такое двоично десятичное преобразование - то гуглить ) дальше думаю само пойдет..

Re: LCD 3310 Вывод информации

Raf00084 » 06 июл 2009, 21:34

спасибо щас погуглю :pardon: , я этого незнал, а вообще правильно я думаю что надо выводить по очереди 1,2,3,4,5

Re: LCD 3310 Вывод информации

Duhas » 06 июл 2009, 21:38

тебе надо твое значение в хексе перевести в десятки сотни и единицы и тд...

Re: LCD 3310 Вывод информации

slavaslx » 06 июл 2009, 22:33

Если у вас к примеру Е=1000, то код будет таков (только одно но, если в этом дисплее цифры выводятся как аски символы, число 1 это 0х31 2 это 0ч32 9 это 0х39, так как у обычных HH74480 которые везде используюся) то приблизительно так :oops: :

lcd_dat((Е/1000)%10 + 0x30); //Индикация единиц тысяч
lcd_dat((Е/100)%10 + 0x30); //Сотни
lcd_dat((Е/10)%10 + 0x30); //Десятки
lcd_dat(Е%10 + 0x30); //Единицы

Вместо lcd_dat твоя функция для вывода символа на дисплей нокий "к примеру допустим нокия_символ " (лично с ними не работал :pardon: , но думаю будет как то так, поэтому это тока приблизительно)
Просто получается обычным делением числа на тыс сот дес еди...

Re: LCD 3310 Вывод информации

Raf00084 » 07 июл 2009, 00:32

щас навоял почуть кода вот такого типа

long int peremennaya=585635;
a=0; сотни тысяч
b=0; десятки тысяч
c=0; тысячи
d=0; сотни
e=0; десятки
f=0; единицы

if(peremennaya>99999) //считаем сколько сотен тысяч;
{pere-ya-=100000;
a++;}
else
if (pere-ya>9999) //считаем сколько десятков тысяч;
{pere-ya-=10000;
b++;}
и.т.д. ----------------------
else
if(per-ya<9)
f=per-ya;}
думаю будет считать?
в итоге a=5,b=8,c=5,.......f=5

но можно и так:
per-ya2=per-ya;
if(peremennaya2>99999)
{a=per-ya2/100000;
per-ya2=((per-ya2/100000)%10; // помещаем в переменную2 остаток от деления;
и.Т.Д

или я чета недогоняю :o

Re: LCD 3310 Вывод информации

galex1981 » 07 июл 2009, 08:23

Быстрее и менее ресурсоемкий 1 способ

Re: LCD 3310 Вывод информации

Raf00084 » 07 июл 2009, 09:15

Спасибо ВСЕМ буду дальше воевать :x !

Re: LCD 3310 Вывод информации

contr » 07 июл 2009, 10:19


d=peremennaya/100; peremennaya-=d*100;
e=peremennaya/10; peremennaya-=e*10;
f=peremennaya

Re: LCD 3310 Вывод информации

yak-40 » 07 июл 2009, 10:29

а так можно?
а=peremennaya/10000;
b=(peremennaya%10000)/1000;
c=((peremennaya%10000)%1000)/100;
ну и т. д.

Re: LCD 3310 Вывод информации

Duhas » 07 июл 2009, 11:09

galex1981 писал(а):Быстрее и менее ресурсоемкий 1 способ

ухаха, скомпильте и киньте суда плз асм листинг... это еще большой вопрос....

Re: LCD 3310 Вывод информации

contr » 07 июл 2009, 12:50

пока символы мелкие - не выше 8 бит, выводим за счет автоинкремента. Предварительно указываем стартовую позицию курсора.
Головняки начнутся при выводе более крупных символов высотой в 2..3 строки. Каждый символ тоже придется выводить в 2..3 прохода, смещая курсор и стартовую позицию в таблице символов.
Вот эти таблицы память и отъедают. На их фоне hex2bcd - веники :wink:

Re: LCD 3310 Вывод информации

Raf00084 » 08 июл 2009, 22:54

contr писал(а):
d=peremennaya/100; peremennaya-=d*100;
e=peremennaya/10; peremennaya-=e*10;
f=peremennaya

вот так по моему будет оптимально, что скажете?

Re: LCD 3310 Вывод информации

MiBBiM » 08 июл 2009, 23:24

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

Re: LCD 3310 Вывод информации

yakuzaa » 06 апр 2010, 08:18

Столкнулся с курьезом: подключил дисп Nokia 5210 (84x48, PCD8544). Его особая привлекательность в том, что он малых габаритов, и имеет удобный контактный шлейф, который не плавится при пайке, но! Изображение на нем отзеркалено справа-налево... как программно можно подкорректировать? или прийдется знакоген переписывать? а может команда есть какая? точно знаю, что в Nokia 1100 дисплее есть команда на "отзеркаливание" изображения, но она, естественно, для PCD8544 не катит...
Изображение
Изображение


Rambler\'s Top100 Mail.ru counter