реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> LPC2148 + S1D13705 посоветуйте GUI
Dogmatik
сообщение Jun 26 2007, 07:23
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 20-01-07
Пользователь №: 24 623



Нужен небольшой контроллер с графическим интерфейсом.
Планирую использовать LPC2148 + S1D13705 + TFT с TouchScr.
Есть ли возможность использовать какой-нибудь несложный GUI.
Особых изысков не надо, кнопки, слайдеры, вывод битмап.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 26 2007, 08:11
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Dogmatik @ Jun 26 2007, 11:23) *
Особых изысков не надо, кнопки, слайдеры, вывод битмап.

То, что Вы назвали, без особого труда делается "с нуля" самостоятельно. Ещё важен вывод текста: там лучше позаимствовать чьи-то форматы шрифтов. Мы взяли из uC/GUI.
Go to the top of the page
 
+Quote Post
Dogmatik
сообщение Jun 26 2007, 10:31
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 20-01-07
Пользователь №: 24 623



Я собственно к этому и склонялся.
А насчет шрифтов хорошая идея.
Надо будет воспользоваться.
А вы кнопочки делали с полутонами и имитацией нажатия или
просто контуром.
Go to the top of the page
 
+Quote Post
Wano
сообщение Jun 26 2007, 10:46
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 3-06-06
Пользователь №: 17 737



С библиотекой uC/GUI идут примерчики. Там много кнопочек,движков и прочих элементов управления. Другое дело,что сама библиотека это просто монстр. Чем разбираться в ней так лучше самому накарябать.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 26 2007, 10:53
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Dogmatik @ Jun 26 2007, 14:31) *
А вы кнопочки делали с полутонами и имитацией нажатия или
просто контуром.

С полутонами и имитацией нажатия. Вот один из скриншотов:
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Dogmatik
сообщение Jun 26 2007, 12:06
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 20-01-07
Пользователь №: 24 623



Цитата(scifi @ Jun 26 2007, 14:53) *
С полутонами и имитацией нажатия. Вот один из скриншотов:

Неплохо, а ресурсов не много сожрало ?

Цитата(Wano @ Jun 26 2007, 14:46) *
С библиотекой uC/GUI идут примерчики. Там много кнопочек,движков и прочих элементов управления. Другое дело,что сама библиотека это просто монстр. Чем разбираться в ней так лучше самому накарябать.

Я пытался как-то использовать эту библиотеку - не влезла в память.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 26 2007, 13:09
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Dogmatik @ Jun 26 2007, 16:06) *
Неплохо, а ресурсов не много сожрало ?

Какие могут понадобиться ресурсы для рисования нескольких прямоугольников, пары битмапов, вывода нескольких строк? Всё получается довольно скромно. Естественно, тратится ПЗУ на шрифты и битмапы, расход памяти на это можно легко подсчитать.
Go to the top of the page
 
+Quote Post
lebiga
сообщение Jun 26 2007, 20:04
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 22-06-06
Из: Киев
Пользователь №: 18 292



Цитата(scifi @ Jun 26 2007, 17:09) *
Какие могут понадобиться ресурсы для рисования нескольких прямоугольников, пары битмапов, вывода нескольких строк? Всё получается довольно скромно. Естественно, тратится ПЗУ на шрифты и битмапы, расход памяти на это можно легко подсчитать.


Если требуется скорость на дисплее или использование окон (GUI_WINSUPPORT) - лучше использовать в uC/GUI режим GUI_SUPPORT_MEMDEV, но для этого нужно в системе выделить память - в зависимости от режима до 80КБ. Если только прямоугольники, шрифты и битмапы - можно использовать только память S1D13705. Я уже писал в другой теме - у меня S1D13705 подключена прямо на порты, причем некоторые сигналы S1D13705 можно не использовать (без BHE, BCLK соединил вместе с CLKI). Скорости хватает, чтобы регенерировать эхограмму за 0.1с (правда часть экрана). Насчет написать свое - если с нуля - не стоит и пытаться, вылавливать ошибки будешь намного дольше, чем разобраться в исходниках uc/Gui. Я для ускорения разработки просто скопировал 30 файлов в проект и скомпилировал. Знаю - так не правильно, нужно сделать просто линковку, но у меня это получилось за 1 день, а остальное время игрался с буквочками по желанию заказчика.
В гуи из больших таких изменений сделал - переписал макросы типа LCD_READ_MEM в lcdconf.h на функции, в которых дергаю ногами для работы с S1D13705
Go to the top of the page
 
+Quote Post
Dogmatik
сообщение Jun 27 2007, 11:11
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 20-01-07
Пользователь №: 24 623



Цитата(lebiga @ Jun 27 2007, 00:04) *
Если требуется скорость на дисплее или использование окон (GUI_WINSUPPORT) - лучше использовать в uC/GUI режим GUI_SUPPORT_MEMDEV, но для этого нужно в системе выделить память - в зависимости от режима до 80КБ. Если только прямоугольники, шрифты и битмапы - можно использовать только память S1D13705. Я уже писал в другой теме - у меня S1D13705 подключена прямо на порты, причем некоторые сигналы S1D13705 можно не использовать (без BHE, BCLK соединил вместе с CLKI). Скорости хватает, чтобы регенерировать эхограмму за 0.1с (правда часть экрана). Насчет написать свое - если с нуля - не стоит и пытаться, вылавливать ошибки будешь намного дольше, чем разобраться в исходниках uc/Gui. Я для ускорения разработки просто скопировал 30 файлов в проект и скомпилировал. Знаю - так не правильно, нужно сделать просто линковку, но у меня это получилось за 1 день, а остальное время игрался с буквочками по желанию заказчика.
В гуи из больших таких изменений сделал - переписал макросы типа LCD_READ_MEM в lcdconf.h на функции, в которых дергаю ногами для работы с S1D13705

Я так понял можно обойтись собственными ресурсами прицессора.
Go to the top of the page
 
+Quote Post
Wano
сообщение Jun 27 2007, 12:04
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 3-06-06
Пользователь №: 17 737



Подскажите плиз люди.Конечно стандартные библиотеки нет вопросов отлично. Но как можно будет заливать каждый раз во флэш такой объём? В оперативку 2148 это никак не влезет. Может я не знаю и занимаюсь дуростью,когда приходится каждый раз все битмапы и шрифты лить. Подскажите,ведь можно же залить фсё это ,к примеру, в конец флэша контроллера,а потом использовать. Ведь записать на бумажку адреса начал того или иного элемента проще чем перезаписывать каждый раз. Может и функции можно. Внешняя RAM - выход,ну а если нет.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 27 2007, 12:41
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Wano @ Jun 27 2007, 15:04) *
Ведь записать на бумажку адреса начал того или иного элемента проще чем перезаписывать каждый раз. Может и функции можно. Внешняя RAM - выход,ну а если нет.
Я лил. Но записывать адреса на бумажку - то еще извращение. Почему бы не объяснить линкеру, что есть два адресных пространства, положить в одно из них код, во второе - константы (фонты и т.д) и не попростить линкер сгенерить два файла? Тогда линкер будет сам подставлять необходимые адреса.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
lebiga
сообщение Jun 27 2007, 20:05
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 22-06-06
Из: Киев
Пользователь №: 18 292



Цитата(Dogmatik @ Jun 27 2007, 15:11) *
Я так понял можно обойтись собственными ресурсами прицессора.

Ну да, у меня стоит LPC2138, вся программа эхолота с ГУИ (обрезанным) заняла 75К flash и 25К RAM
Go to the top of the page
 
+Quote Post
Wano
сообщение Jun 28 2007, 07:59
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 3-06-06
Пользователь №: 17 737



Цитата(Сергей Борщ @ Jun 27 2007, 15:41) *
Я лил. Но записывать адреса на бумажку - то еще извращение. Почему бы не объяснить линкеру, что есть два адресных пространства, положить в одно из них код, во второе - константы (фонты и т.д) и не попростить линкер сгенерить два файла? Тогда линкер будет сам подставлять необходимые адреса.


Подскажите коим образом можно делить на два адресных пространства флэш память контроллера. Я так понимаю в Кейле это настройки ROM1 RAM1 ROM2 RAM2 . Если так,но что делать дальше,как к примеру массив-картинку записать по какому-то адресу?

Вот в книжке Трэвора на стр. 47 есть раздел "Размещение объектов по фиксированным адресам"
int checksum_at 0x40000000

Эт тоже всё хорошо,один раз скомпилили - записали во флэш где-то в конце массив.А следующий раз?
Убрать из него инициалиацию,но оставить по тому же адресу.

Напишите пару строчек ликбеза,кто знает как решить проблему.
Go to the top of the page
 
+Quote Post
khach
сообщение Jun 28 2007, 09:08
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Цитата(Dogmatik @ Jun 26 2007, 09:23) *
Планирую использовать LPC2148 + S1D13705 + TFT с TouchScr.

А как вы его аппаратно подключаете S1D13705 к LPC2148? А то от реализации интерфейса логика построения gui немного меняется. Т.е выполнимо ли на данном интерфейсе операции чтения- модификация-запись или нет? По причине отсутствия у LPC2148 параллельной шины возможны два варианта- симуляция параллельной шины программно или цепляться на быструю последовательную шину. И вот во втором случае чтение- модификация-запись в силу блочности обмена по SSP требуют модификации ГУИ, иначе все тормозить будет безбожно.
Go to the top of the page
 
+Quote Post
lebiga
сообщение Jun 28 2007, 17:15
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 22-06-06
Из: Киев
Пользователь №: 18 292



Цитата(khach @ Jun 28 2007, 13:08) *
А как вы его аппаратно подключаете S1D13705 к LPC2148? А то от реализации интерфейса логика построения gui немного меняется. Т.е выполнимо ли на данном интерфейсе операции чтения- модификация-запись или нет? По причине отсутствия у LPC2148 параллельной шины возможны два варианта- симуляция параллельной шины программно или цепляться на быструю последовательную шину. И вот во втором случае чтение- модификация-запись в силу блочности обмена по SSP требуют модификации ГУИ, иначе все тормозить будет безбожно.


Я поставил две защелки HC573 на адрес - т.е. симуляция параллельной шины. В том то и дело, что операция чтение-модиф-запись - это основная операция при этой конфигурации, ведь используется в основном память S1D13705.
Причем рекомендация - напишите сначала код для записи данных в S1D13705- потом делайте схему - так не промахнетесь с быстродействием, типа A16 переносить.

Сообщение отредактировал lebiga - Jun 28 2007, 17:16
Go to the top of the page
 
+Quote Post
Dogmatik
сообщение Jun 30 2007, 05:47
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 20-01-07
Пользователь №: 24 623



Цитата(lebiga @ Jun 28 2007, 21:15) *
Я поставил две защелки HC573 на адрес - т.е. симуляция параллельной шины. В том то и дело, что операция чтение-модиф-запись - это основная операция при этой конфигурации, ведь используется в основном память S1D13705.
Причем рекомендация - напишите сначала код для записи данных в S1D13705- потом делайте схему - так не промахнетесь с быстродействием, типа A16 переносить.


Спасибо за совет. С железом еще не занимался, так что ценное замечание.
Еще один вопрос. Как touchscreen подключали ? Я слышал что цепляют на
ацп процессора это реально ? Если да то как ?
Go to the top of the page
 
+Quote Post
lebiga
сообщение Jun 30 2007, 08:42
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 22-06-06
Из: Киев
Пользователь №: 18 292



Цитата(Dogmatik @ Jun 30 2007, 09:47) *
Спасибо за совет. С железом еще не занимался, так что ценное замечание.
Еще один вопрос. Как touchscreen подключали ? Я слышал что цепляют на
ацп процессора это реально ? Если да то как ?


Я не цеплял, но смотрел код - вроде бы все без проблем. в модуле GUI_TOUCH_DriverAnalog.c вызываются функции TOUCH_X_MeasureX, TOUCH_X_MeasureY - ты их сам пишешь под одиночное измерение аналоговой координаты. Естественно - координаты X и Y. Потом все преобразовывается и настраивается под твою панель в define. Только сделай пару экспериментов - какое напряжение панели будет при касании в разных углах - и согласуй с диапазоном ацп - будет лучше работать
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.0152 секунд с 7
ELECTRONIX ©2004-2016