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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 27.08.2011, 22:26  
vlad145
Прописка
 
Регистрация: 06.05.2008
Адрес: Курган
Сообщений: 161
Сказал спасибо: 31
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
vlad145 на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от vdlab Посмотреть сообщение
Неоптимальный путь, так слишком долго.
А как быстрее?
Реклама:
vlad145 вне форума  
Непрочитано 27.08.2011, 22:50  
vdlab
Гражданин KAZUS.RU
 
Аватар для vdlab
 
Регистрация: 17.07.2006
Адрес: PV.DP.UA
Сообщений: 620
Сказал спасибо: 3
Сказали Спасибо 60 раз(а) в 48 сообщении(ях)
vdlab на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Ну я делал так:

Код:
void Circle(INT x, INT y, INT r, UINT color, UCHAR filled)
{
        int x1,y1,yk = 0;
        int sigma,delta,f;

        x1 = 0;
        y1 = r;
        delta = 2*(1-r);

        do
        {
            if(filled)
                {
                DrawLine(x-x1, y+y1, x+x1, y+y1, color);
                DrawLine(x-x1, y-y1,x+x1, y-y1, color);
                }
            else
                {    
                PutPixel(x+x1,y+y1,color);
                PutPixel(x-x1,y+y1,color);
                PutPixel(x+x1,y-y1,color);
                PutPixel(x-x1,y-y1,color);
                }
                f = 0;
                if (y1 ‹ yk)
                        break;
                if (delta ‹ 0)
                {
                        sigma = 2*(delta+y1)-1;
                        if (sigma ‹= 0)
                        {
                                x1++;
                                delta += 2*x1+1;
                                f = 1;
                        }
                }
                else
                if (delta › 0)
                {
                        sigma = 2*(delta-x1)-1;
                        if (sigma › 0)
                        {
                                y1--;
                                delta += 1-2*y1;
                                f = 1;
                        }
                }
                if (!f)
                {
                        x1++;
                        y1--;
                        delta += 2*(x1-y1-1);
                }
        }
        while(1);
}
__________________
Если ты читаешь это - значит тебе нечем заняться...
vdlab вне форума  
Непрочитано 27.08.2011, 22:56  
vlad145
Прописка
 
Регистрация: 06.05.2008
Адрес: Курган
Сообщений: 161
Сказал спасибо: 31
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
vlad145 на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

У меня код выглядит так:

//// Рисуем окружность
void lcd_circle(char xcenter, char ycenter, signed int rad, int color)
{
signed int tswitch,y1,x1 = 0;
signed char d;
CS=0;

xcenter = DISP_H - xcenter;
d = ycenter - xcenter;
y1 = rad;
tswitch = 3 - 2 * rad;

while (x1 ‹= y1)
{
lcd_pixel(xcenter + x1, ycenter + y1, color);
lcd_pixel(xcenter + x1, ycenter - y1, color);
lcd_pixel(xcenter - x1, ycenter + y1, color);
lcd_pixel(xcenter - x1, ycenter - y1, color);
lcd_pixel(ycenter + y1 - d, ycenter + x1, color);
lcd_pixel(ycenter + y1 - d, ycenter - x1, color);
lcd_pixel(ycenter - y1 - d, ycenter + x1, color);
lcd_pixel(ycenter - y1 - d, ycenter - x1, color);
if (tswitch ‹ 0) tswitch += (4 * x1 + 6);
else
{
tswitch += (4 * (x1 - y1) + 10);
y1--;
}
x1++;
}
CS=1;
}
vlad145 вне форума  
Непрочитано 29.08.2011, 06:38  
011119xx
Прописка
 
Регистрация: 18.04.2005
Сообщений: 101
Сказал спасибо: 1
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
011119xx на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Зачем вам вообще нужно париться с окружностью? Ведь практического применения ей нетууууу
011119xx вне форума  
Непрочитано 02.09.2011, 08:17  
vlad145
Прописка
 
Регистрация: 06.05.2008
Адрес: Курган
Сообщений: 161
Сказал спасибо: 31
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
vlad145 на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Уже пару дней бьюсь с одной проблемой. Не могу нормально закрасить область. Вот код:

//================================================== =========================
// Процедура рисования квадрата
//================================================== =========================
// процедура вывода прямоугольников x1,y1,x2,y2-координаты начала и конца,
// color-цвет ,p= 1-закрашеный, 0-пустой
void lcd_rect(int x1, int y1, int x2, int y2, int color, char p)
{
if (p==1)
{
fill_area(x1,y1,x2,y2,color);
}
else
{
lcd_line ( x1,y1,x1,y2,color );
lcd_line ( x1,y2,x2,y2,color );
lcd_line ( x2,y2,x2,y1,color );
lcd_line ( x2,y1,x1,y1,color );
};
}

//================================================== ========================================
// Процедура заполнение цветом области
//================================================== ========================================
// fill_area(10,14,32,16,BLUE);
// Нарисовать прямоугольник с началом по х=10:у=14 с размером по х=32:у=16 цветом BLUE
void fill_area( char x1, char x2, char y1, char y2,int color)
{
int i;
char w,h;

lcd_reg(0x05);lcd_dat(0x0030);
lcd_reg(0x16);lcd_dat8(y2,y1);
lcd_reg(0x17);lcd_dat8(x2,x1);
lcd_reg(0x21);lcd_dat8(x1,y1);
lcd_reg(0x22);lcd_write8(0x76);
//Пишем точку
w=x2-x1+1;h=y2-y1+1;
for (i=0;i‹w*h;i++)
{
lcd_write(color);
};
}

При использовании первого, 0 или 1 без разницы, квадрат чистый. При использовании второго, заполнение на полностью. Причем, если квадрат маленький, примерно 15х15, то нормально. Если размер больше, то только часть. Где может быть ошибка в коде?
vlad145 вне форума  
Непрочитано 02.09.2011, 08:24  
vlad145
Прописка
 
Регистрация: 06.05.2008
Адрес: Курган
Сообщений: 161
Сказал спасибо: 31
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
vlad145 на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

И ещё вопрос. Есть вот такой код для вывода информации на LCD.

// Выводим данных на ЛСД
sprintf( TimeBuff1,"%.0f", FREC1 );
put_string(10,110,TimeBuff1,BLACK,0,1)

Как можно ограничить количество выводимых знакомест, допустим до 4. Естественно чтобы выводились старшие биты.
vlad145 вне форума  
Непрочитано 02.09.2011, 12:36  
BigallS
Временная регистрация
 
Регистрация: 18.04.2011
Адрес: Russia
Сообщений: 51
Сказал спасибо: 7
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
BigallS на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от vlad145 Посмотреть сообщение
А для L2F50 и LPH8836 коды похожи?
Для L2F50 вот на этой странице есть http://electronix.ru/forum/index.php...=16563&st=1185
правда на ассемблере

Последний раз редактировалось BigallS; 02.09.2011 в 12:38.
BigallS вне форума  
Непрочитано 02.09.2011, 19:59  
vlad145
Прописка
 
Регистрация: 06.05.2008
Адрес: Курган
Сообщений: 161
Сказал спасибо: 31
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
vlad145 на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от BigallS Посмотреть сообщение
Для L2F50 вот на этой странице есть http://electronix.ru/forum/index.php...=16563&st=1185
правда на ассемблере
В том то и дело что ассемблер, мне Си ближе.
vlad145 вне форума  
Непрочитано 02.09.2011, 20:18  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от vlad145 Посмотреть сообщение
И ещё вопрос. Есть вот такой код для вывода информации на LCD.

// Выводим данных на ЛСД
sprintf( TimeBuff1,"%.0f", FREC1 );
put_string(10,110,TimeBuff1,BLACK,0,1)

Как можно ограничить количество выводимых знакомест, допустим до 4. Естественно чтобы выводились старшие биты.
А зачем выводить в формате с плавучкой, если не отображать ни одного знака после запятой? Приведите FREC1 к целому виду перед выводом (если она у вас с плавающей) и выводите целочисленное значение. И что значит "чтобы выводились старшие биты"? Вы же ведь числа выводите, а не биты.
Код:
         sprintf( TimeBuff1,"%4d", (unsigned int)(FREC1) );
Почитайте (пусть даже популярно) про форматы функции... http://ru.wikipedia.org/wiki/Printf
ut1wpr вне форума  
Непрочитано 02.09.2011, 20:41  
sdsrem
Почётный гражданин KAZUS.RU
 
Аватар для sdsrem
 
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
sdsrem на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от vlad145 Посмотреть сообщение
В том то и дело что ассемблер, мне Си ближе.
Вот драверок на С L2F50, может подайдёт?
Вложения:
Тип файла: zip L2F50_display4_V01.zip (13.3 Кб, 118 просмотров)
sdsrem вне форума  
Эти 2 пользователя(ей) сказали Спасибо sdsrem за это сообщение:
komar72 (27.10.2011), vlad145 (02.09.2011)
 

Закладки

Метки
lcd
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто использовал дисплеи от сотовых телефонов - помогите! Afandi Делимся опытом 12 14.01.2012 09:48
дисплеи от сотовых Sp-alex-trio Ремонт оргтехники 5 22.05.2009 15:11
преобразователь код-код zazan111 TTL и CMOS логика 18 05.01.2009 06:11
TV LCD дисплеи NecroSS Ремонт оргтехники 1 08.12.2008 11:48


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


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