|
LPC2148 + S1D13705 посоветуйте GUI |
|
|
|
Jun 26 2007, 07:23
|
Участник

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

|
Нужен небольшой контроллер с графическим интерфейсом. Планирую использовать LPC2148 + S1D13705 + TFT с TouchScr. Есть ли возможность использовать какой-нибудь несложный GUI. Особых изысков не надо, кнопки, слайдеры, вывод битмап.
|
|
|
|
|
Jun 26 2007, 10:31
|
Участник

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

|
Я собственно к этому и склонялся. А насчет шрифтов хорошая идея. Надо будет воспользоваться. А вы кнопочки делали с полутонами и имитацией нажатия или просто контуром.
|
|
|
|
|
Jun 26 2007, 12:06
|
Участник

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

|
Цитата(scifi @ Jun 26 2007, 14:53)  С полутонами и имитацией нажатия. Вот один из скриншотов: Неплохо, а ресурсов не много сожрало ? Цитата(Wano @ Jun 26 2007, 14:46)  С библиотекой uC/GUI идут примерчики. Там много кнопочек,движков и прочих элементов управления. Другое дело,что сама библиотека это просто монстр. Чем разбираться в ней так лучше самому накарябать. Я пытался как-то использовать эту библиотеку - не влезла в память.
|
|
|
|
|
Jun 26 2007, 20:04
|

Частый гость
 
Группа: Свой
Сообщений: 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
|
|
|
|
|
Jun 27 2007, 11:11
|
Участник

Группа: Участник
Сообщений: 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 Я так понял можно обойтись собственными ресурсами прицессора.
|
|
|
|
|
Jun 27 2007, 20:05
|

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

|
Цитата(Dogmatik @ Jun 27 2007, 15:11)  Я так понял можно обойтись собственными ресурсами прицессора. Ну да, у меня стоит LPC2138, вся программа эхолота с ГУИ (обрезанным) заняла 75К flash и 25К RAM
|
|
|
|
|
Jun 28 2007, 07:59
|
Местный
  
Группа: Свой
Сообщений: 272
Регистрация: 3-06-06
Пользователь №: 17 737

|
Цитата(Сергей Борщ @ Jun 27 2007, 15:41)  Я лил. Но записывать адреса на бумажку - то еще извращение. Почему бы не объяснить линкеру, что есть два адресных пространства, положить в одно из них код, во второе - константы (фонты и т.д) и не попростить линкер сгенерить два файла? Тогда линкер будет сам подставлять необходимые адреса. Подскажите коим образом можно делить на два адресных пространства флэш память контроллера. Я так понимаю в Кейле это настройки ROM1 RAM1 ROM2 RAM2 . Если так,но что делать дальше,как к примеру массив-картинку записать по какому-то адресу? Вот в книжке Трэвора на стр. 47 есть раздел "Размещение объектов по фиксированным адресам" int checksum_at 0x40000000 Эт тоже всё хорошо,один раз скомпилили - записали во флэш где-то в конце массив.А следующий раз? Убрать из него инициалиацию,но оставить по тому же адресу. Напишите пару строчек ликбеза,кто знает как решить проблему.
|
|
|
|
|
Jun 28 2007, 17: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
|
|
|
|
|
Jun 30 2007, 05:47
|
Участник

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

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

Частый гость
 
Группа: Свой
Сообщений: 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. Только сделай пару экспериментов - какое напряжение панели будет при касании в разных углах - и согласуй с диапазоном ацп - будет лучше работать
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|