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

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

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

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

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

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

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

 
Опции темы
Непрочитано 02.09.2011, 21:24  
dadigor
Прописка
 
Аватар для dadigor
 
Регистрация: 10.09.2010
Сообщений: 113
Сказал спасибо: 31
Сказали Спасибо 27 раз(а) в 27 сообщении(ях)
dadigor на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от vlad145 Посмотреть сообщение
// Нарисовать прямоугольник с началом по х=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, то нормально. Если размер больше, то только часть. Где может быть ошибка в коде?
Судя по всему у вас i - 8-битное целое, поэтому i = w * h не может превышать 255... Попробуйте объявить его 16-битным.
Реклама:
dadigor вне форума  
Непрочитано 02.09.2011, 21:48  
vlad145
Прописка
 
Регистрация: 06.05.2008
Адрес: Курган
Сообщений: 161
Сказал спасибо: 31
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
vlad145 на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Я ещё не совсем разобрался с данным кодом, адаптировал из WINAVR в CVAVR. Вот все процедуры. Удалось переделать(может и не совсем правильно) почти все, кроме этих двух.
Вложения:
Тип файла: txt процедуры.txt (10.1 Кб, 121 просмотров)
vlad145 вне форума  
Непрочитано 02.09.2011, 22:54  
dadigor
Прописка
 
Аватар для dadigor
 
Регистрация: 10.09.2010
Сообщений: 113
Сказал спасибо: 31
Сказали Спасибо 27 раз(а) в 27 сообщении(ях)
dadigor на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

попробуй в fill_area объявление переменной i:

int i;

заменить на:

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

Сообщение от dadigor Посмотреть сообщение
попробуй в fill_area объявление переменной i:

int i;

заменить на:

uint16_t i;
Сразу выдаёт ошибки:

Error: .... undefined symbol 'uint16_t'
Error: .... must declare first in block
vlad145 вне форума  
Непрочитано 02.09.2011, 23:10  
sdsrem
Почётный гражданин KAZUS.RU
 
Аватар для sdsrem
 
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
sdsrem на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от dadigor Посмотреть сообщение
попробуй в fill_area объявление переменной i:

int i;

заменить на:

uint16_t i;

В CVAVR uint16_t i вроде не катит а vlad145 под него надо
sdsrem вне форума  
Непрочитано 02.09.2011, 23:14  
dadigor
Прописка
 
Аватар для dadigor
 
Регистрация: 10.09.2010
Сообщений: 113
Сказал спасибо: 31
Сказали Спасибо 27 раз(а) в 27 сообщении(ях)
dadigor на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

хм, ступил я... вообще-то int обычно и так 16-битное число. Возможно произведение w*h у тебя приводится к char. Тогда попробуй объявить w и h 16-битными целыми:

int w, h;

или сделать вот так:

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

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);
//Пишем точку
v = (x2-x1+1) * (y2-y1+1);
for (i = 0; i ‹ v; i++)
{
lcd_write(color);
};
}

Последний раз редактировалось dadigor; 02.09.2011 в 23:45.
dadigor вне форума  
Сказали "Спасибо" dadigor
vlad145 (05.09.2011)
Непрочитано 03.09.2011, 05:47  
vlad145
Прописка
 
Регистрация: 06.05.2008
Адрес: Курган
Сообщений: 161
Сказал спасибо: 31
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
vlad145 на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Сообщение от dadigor Посмотреть сообщение
хм, ступил я... вообще-то int обычно и так 16-битное число. Возможно произведение w*h у тебя приводится к char. Тогда попробуй объявить w и h 16-битными целыми:

int w, h;

или сделать вот так:

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

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);
//Пишем точку
v = (x2-x1+1) * (y2-y1+1);
for (i = 0; i ‹ v; i++)
{
lcd_write(color);
};
}
Проект компилируется но результат тот же. В предупреждениях пишет следующее:

Warning: .... overflow is possible in 8 bit addition, casting to 'int' may be required
Warning: .... overflow is possible in 8 bit multiplication, casting to 'int' may be required
vlad145 вне форума  
Непрочитано 03.09.2011, 06:54  
vlad145
Прописка
 
Регистрация: 06.05.2008
Адрес: Курган
Сообщений: 161
Сказал спасибо: 31
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
vlad145 на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Странно как то. Просмотрел кучу разных проектов под данные дисплеи и такое впечатление, что в 16bit под них пишу в чем угодно, только не в CVAVR.
vlad145 вне форума  
Непрочитано 04.09.2011, 10:28  
vlad145
Прописка
 
Регистрация: 06.05.2008
Адрес: Курган
Сообщений: 161
Сказал спасибо: 31
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
vlad145 на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

Что, никто не писал в CVAVR для отображения 16 битного цвета?
vlad145 вне форума  
Непрочитано 04.09.2011, 23:35  
dadigor
Прописка
 
Аватар для dadigor
 
Регистрация: 10.09.2010
Сообщений: 113
Сказал спасибо: 31
Сказали Спасибо 27 раз(а) в 27 сообщении(ях)
dadigor на пути к лучшему
По умолчанию Re: Дисплеи от сотовых (схемы подключения, код, datasheet)

overflow is possible in 8 bit addition, overflow is possible in 8 bit multiplication
Я бы попробовал еще char x1, char x2, char y1, char y2 заменить на int x1 и т.п....
dadigor вне форума  
Сказали "Спасибо" dadigor
vlad145 (05.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, время: 22:23.


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