Страница 27 из 73

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Чт авг 16, 2012 22:25:02
radiokot__
Satyr писал(а):Ну запустишь, велико ли достижение ? Дальше то что ? :)))
Удел аврок - только моргать светодиодами, максимум парой-тройкой семисегментников

Бери stm32f2xx в 100 ногом - будет фигарить по экрану только в путь.
А чем интересно вам ATMEL не угодил?
Вот например камушек AT91SAM9M10
Ну и кто с ним будет соревноватся, я имею в виду STM да и LPC.
STM полный отстой, во всех планах.
По питанию дохнут как мухи, переферия глючная до безобразия, и ещё куча всяких какашек.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Чт авг 16, 2012 22:31:59
Satyr
Можно не мелочиться

берем такой дисплей http://www.ebay.com/itm/180838675218
такие микросхемки
lcdset.JPG
(48.01 КБ) 803 скачивания
и можно даже вертикальный плавный инерционный скрол сделать. При разрешении 800х480 :)))

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Чт авг 16, 2012 22:38:35
Satyr
radiokot__ писал(а): А чем интересно вам ATMEL не угодил?
Вот например камушек AT91SAM9M10
Не вопрос, если научишь где под BGA заказать плату дешевле, чем купить простенький комп на атоме всборе
Ну и кто с ним будет соревноватся, я имею в виду STM да и LPC.
Как кто ? одноклассники SAM9 от этих контор. SPEAr и LPC3xxx соотв.
STM полный отстой, во всех планах.
По питанию дохнут как мухи, переферия глючная до безобразия, и ещё куча всяких какашек.
У кого как :)))

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Чт авг 16, 2012 23:07:24
SubDia
radiokot__ писал(а): STM полный отстой, во всех планах.
По питанию дохнут как мухи, переферия глючная до безобразия, и ещё куча всяких какашек.
Доказательства? Пруфлинки, подробное описание прецедентов?
Кривые руки из жопы в качестве аргумента не рассматриваются. :)))
ЗЫ. Сколько ни гонял STM - ни разу не подвели. Сколько косяков встречал, всегда причиной были оные кривые руки.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 00:54:35
HHIMERA
radiokot__ писал(а):STM полный отстой, во всех планах.
Угу... :)))

stm32F103@72MHz & 240x320x16bit SSD1289 16bit color

Заливка одним цветом - 9,610 mS (104 FPS)
Картинка из флэша МК - 13,778 mS (72,5 FPS)
Картинка из SST25VF016B - 34,153 mS (29,3 FPS)

И это всё так... без применения FSMC, буферов и DMA...
Давай, похвастайся, на что способна Мега16... :)))

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 10:27:17
radiokot__
Малодец.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 10:31:34
Satyr
HHIMERA писал(а): Давай, похвастайся, на что способна Мега16... :)))
Мосфеты стоамперные напрямую без драйвера дергать. ВСЁ :)))

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 11:17:25
Satyr
Про глючности и ошибки :)))

Как вам такое ?

"Multiply instructions do not work on Rev D
All the multiply instructions do not work.
Fix/Workaround
Do not use the multiply instructions."

Это на МК, который позиционируется как
"High Performance, Low Power 32-bit AVR® Microcontroller
– Compact Single-Cycle RISC Instruction Set Including DSP Instruction Set
– Read-Modify-Write Instructions and Atomic Bit Manipulation
– Performing up to 1.51DMIPS/MHz
• Up to 92DMIPS Running at 66MHz from Flash (1 Wait-State)"

И там еще много интересного -)))

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 11:55:21
BigallS
Коты!!! вы ушли от темы может отдельно ветку себе создадите?

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 12:07:23
Satyr
А что с темой ? Вроде как тема уж страниц 20 назад исчерпана.
Бери, подключай, рисуй. все типы подключений (i2c, spi, i8080/6 шина) упомянули, большинство распространенных контроллеров тоже.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 12:18:32
BigallS
Не считаю так, человек спросил как работать с дисплеем S5230 и с AVR... CyberVad например написал по делу, а теперь посмотрим всю 27 страницу - там только у вас меряние процами.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 13:02:25
Satyr
И чего, теперь с каждым из ста тыщ китайских дисплеев по новой полную лекцию с нуля вести ?
людям дали уже не удочку, целую рыболовную сеть. что теперь, еще и вечно в нее рыбы самим закидывать ? -))

нет у человека ни малейшего желания вникнуть и разобраться - зачем вобще в электроннику лезть ? китайская промышленность полность покрывает любые фантазии. да и наборов-конструкторов, где все подсоединил, кнопку нажал - засветилось полно сейчас.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 13:27:52
BigallS
Раз человек спросил, значить есть желание узнать что то новое. А если считаете что всё уже сделано, тогда что вы здесь делаете? Продолжаете флудить... более отвечать не буду.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 13:35:03
HHIMERA
BigallS писал(а):Не считаю так, человек спросил как работать с дисплеем S5230 и с AVR... CyberVad например написал по делу, а теперь посмотрим всю 27 страницу - там только у вас меряние процами.
А я считаю по другому... тема не только для "избранных"...
Поэтому те, кто впервые сталкивается с подключением TFT дисплеев, должны знать весь расклад, в том числе и по МК... чтобы потом "не было мучительно больно"... за бесцельно потраченные время и деньги...

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 13:38:20
Satyr
HHIMERA писал(а): Поэтому те, кто впервые сталкивается с подключением TFT дисплеев, должны знать весь расклад, в том числе и по МК... чтобы потом "не было мучительно больно"... за бесцельно потраченные время и деньги...
Ну... впринципе, тут же большинство спрашивает не "как использовать для чего то практически значащего", а "а как подключить?" Гамно-вопрос, подключить хоть к аттини с килобайтом памяти но достаточны числом ног можно.
Т.е. полное удовлетворение интереса -))))))))

Ну а дальше (а дальше, я так понимаю, доходят единицы) все точь в точь как ты пишешь

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 13:42:27
Satyr
Собсно самый дешевый, гибкий, шустрый варинт работы с ЛЮБЫМИ вобще дисплеями до 1024x768 разрешением я кинул выше. и даже с местом, где дешевле всего заказать и сколько именно стоит -))

Для дисплеев с контроллерами внутри - страницей ранее.

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 20:58:40
CyberVad
Часть вторая. Как я вывожу символы на дисплей.
Так как наш дисп графический, то это значит что мы сами должны организовывать прорисовку символов на экране. На первый взгляд сложно. Оно и в самом деле не очень просто, но тяжело в ученьи-легко в бою: когда мы всё настроим то выводить информацию на дисп будет не сложнее чем на банальный 16х2.
Нам понадобится файл со шрифтом, этот файл определяет какие символы как будут изображаться. Простейший шрифт - 5х7. Это значит по вертикали 7 точек, по горизонтали 5. Шрифт не слишком красивый но вполне читаемый. Скажу больше - я пробовал рисовать в ширину 3 точки - тоже читаемо, но очень коряво.
Как в файле шрифта кодируется символ. Каждому символу (в случае 5х7) отводится 5 байтов. Первый байт даёт нам левый столбец, второй - второй и 5й байт - правый столбец. Младший бит - верхняя точка столбца. Старший бит (7) - нижняя точка. Обычно он равен 0 - он служит как бы пробелом между строками, так что реально изображает символ максимум бит 6.
Что нам теперь нужно. Нам нужно вывести по очереди эти 5 байтов на дисплей, напомню первый байт слева, справа последний. Но если просто отправить байт в дисплей то ничего не выйдет. Дело в том что в файле шрифта каждый бит каждого байта означает отдельный пиксель (0-не светится, 1-светится). А нам нужно для того что бы пиксель светился отправить 3 байта. Видите? Нам нужно один бит превратить в 3 байта.
Я делаю так:
void CFB(unsigned char datf, unsigned char R, unsigned char G, unsigned char B)
{
if(datf & (1 << 0))
SDLCDcolor(R,G,B); else SDLCDcolor(fonR,fonG,fonB);
if(datf & (1 << 1))
SDLCDcolor(R,G,B); else SDLCDcolor(fonR,fonG,fonB);
if(datf & (1 << 2))
SDLCDcolor(R,G,B); else SDLCDcolor(fonR,fonG,fonB);
if(datf & (1 << 3))
SDLCDcolor(R,G,B); else SDLCDcolor(fonR,fonG,fonB);
if(datf & (1 << 4))
SDLCDcolor(R,G,B); else SDLCDcolor(fonR,fonG,fonB);
if(datf & (1 << 5))
SDLCDcolor(R,G,B); else SDLCDcolor(fonR,fonG,fonB);
if(datf & (1 << 6))
SDLCDcolor(R,G,B); else SDLCDcolor(fonR,fonG,fonB);
if(datf & (1 << 7))
SDLCDcolor(R,G,B); else SDLCDcolor(fonR,fonG,fonB);
}
Что происходит: мы передаём процедуре байт прочитанный из файла шрифта и цвет которым он должен отобразиться и один байт передётся 8х3 байтов. Переменные fonB..fonR - это у меня глобальные переменные которые означают цвет фона. Если цвет фона изменять не планируется, то их можно заменить конкретными цифрами.
Можно конечно упростить сделав цикл, хотите сделайте.
Так вот, мы передаём 5 байтов из шрифта - и - на экране символ!
Давайте передадим их:
void PrintL(unsigned int num, unsigned char R, unsigned char G, unsigned char B)
{
num=num*5;
temp=pgm_read_byte(&(Font_5x8[num+0]));
CFB(temp,R,G,B);
temp=pgm_read_byte(&(Font_5x8[num+1]));
CFB(temp,R,G,B);
temp=pgm_read_byte(&(Font_5x8[num+2]));
CFB(temp,R,G,B);
temp=pgm_read_byte(&(Font_5x8[num+3]));
CFB(temp,R,G,B);
temp=pgm_read_byte(&(Font_5x8[num+4]));
CFB(temp,R,G,B);
CFB(0,fonR, fonG, fonB);
}
Мы передаём процедуре код символа и цвет.

Но мы ещё не задали куда нужно выводить! Напрмер так:

void DSAT(unsigned int X, unsigned int Y)
{
//---Задаём область вывода текста (8 пикселей в высоту)---
LCDCommand(0x2A); //Команда по Y координате
temp=(Y >> 8) & 0xff;
LCDData(temp); //Данные начала Y координат (старший байт)
temp=Y & 0xff;
LCDData(temp); //младший байт
Y=Y+7;
temp=(Y >> 8) & 0xff;
LCDData(temp); //Данные конца Y координат (старший байт)
temp=Y & 0xff;
LCDData(temp); //младший байт
//------------------------
LCDCommand(0x2B); //Команда по Х координате
temp=(X >> 8) & 0xff;
LCDData(temp); //Данные начала X координат (старший байт)
temp=X & 0xff;
LCDData(temp); //младший байт
temp=(X >> 8) & 0xff;
LCDData(0x1); //Данные конца X координат (старший байт)
LCDData(0x90); //младший байт
}
Тут мы вызывем процедуру с координатами верхнего левого угла символа. Далее вычисляется и передаётся в дисплей нижний край области вывода, рассчётом правой границы я не стал заниматься - я задаю по максимуму (край дисплея), хватит всегда.
Теперь мы можем выводить символы на экран задав область вывода и передавая символ за символом. Но так уныло и не красиво. Я делаю красивее. Глубинной сути этого явления я не понял, но оно работает, хоть и пишет предупреждения.
Процедура такая:
void showstr(unsigned char *s, unsigned int X, unsigned int Y, unsigned char R,unsigned char G,unsigned char B)
{
D_PORT &= ~(1 << CS); //Ноль
DSAT(X, Y);
LCDCommand(0x2C); //Команда записи в память дисплея Что
//-----------------Теперь собственно выводим текст-------------------------
while(*s != 0) PrintL(*s++,R,G,B);
D_PORT |= 1 << CS; //Единица
}
Мы вызываем задавая координаты вывода и цвет.
Но это ещё не все, пользуемся процедурой так:
showstr("Паяльника нет!",3,3,255,255,255); //Текст, начало X Y
Красиво жутко.

Примечание. Если мы будем делать так как я всё описал, используя шрифт 5х8 то получим микроскопические буквочки которые нелегко читать, так как пиксели у нашего диспа очень мелюсенькие. Что делать? Если памяти программ мало (ведь в ней кроме собственно программы будет храниться и шрифт) то можно программно растягивать символы - один бит шрифта превращать не в 3 байта, а в 6 (передаём R G B R G B - получается по вертикали 2 одинаковых по цвету пикселя) и а так же выводить каждый байт шрифта дважды (получатся 2 одинаковых столбца).Но тогда символы будут корявоватые. А если памяти достаточно то можно использовать шрифты крупнее, например 12х16. Тогда символы будут красивые и не маленькие. Но тогда надо усложнить процедуры. В прилагаемом проекте я использовал как раз такой шрифт.
Просьба за мой проект ногами не пинать, это моя вторая программа на С. Этот проект - велоспидометр с одометром и часами (часы правда работают через раз, пока не понял почему), делал сыну, дисплей S5230, МК ATMEGA32. Датчик - датчик холла на вилке и 2 магнита на спицах.

:tea:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 21:09:20
CyberVad
Ещё раз скажу - я не мега-программер утверждающий что надо делать так, только так и никак иначе. Если угодно - я-быдлокодер. Я не ставлю перед собой задачи стать мега-программером, я ставлю конкретные цели и решаю их, пусть порой и не слишком красиво.
Целью моего "цикла статей" было не показать как надо делать, а рассказать как управлять графическим дисплеем, так как все выкладывают проекты, но никто и нигде (я не встречал) просто не объясняет. Так что если угодно, цель моего повествования - просветительская.
Насчёт того что атмеги - кроме как мигать светодиодами ни на что не способны. Как говорили древние "Главное что бы наши возможности совпадали с нашими потребностями". Да, атмегой32 12 Мгц видео на такой дисплей не повыводишь. Но мне этого и не надо! Да, весь экран перерисовывается долго (может секунду, может меньше, я не измерял), а мне быстрее и не надо. У меня экран заполняется цветом (синим) лишь раз - при старте. Далее раз в секунду обновляется время и напряжение батареи а километражи, скорость и стрелка обновляются и того реже (по мере надобности). Для таких задач и такого МК хватает с лихвой. Так что так.

:tea:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Пт авг 17, 2012 21:18:26
CyberVad
CyberVad писал(а): В прилагаемом проекте :tea:
Упс, а вот обещанный проект:

Re: Юзаем дисплеи от сотовых и других потаскунчиков.

Добавлено: Сб авг 18, 2012 11:17:10
Кислый
хмм. появилась одна идея :)