Значения в массиве начинают отчет с 0. Вам надо менять 6 элемент массива! И данные в HEX 0x10 и 0x64 если не хотите переводить в десятичные! В документации все данные и параметры в HEX
byte Send_ar[10] = {0x5A, 0xA5, 0x07, 0x82, 0x00, 0x82, 0x64, 0x32, 0x03, 0xE8}; // это массив который передается в уарт
/ /byte Send_ar[10] это размер массива 10 бит
void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.write(Send_ar,10); // это команда отправки массива в уарт
delay(1000);
Send_ar[7] = 10; // это запись значения 10 в массив на 7 место
Serial.write(Send_ar,10); // это команда отправки массива в уарт
delay(1000);
Send_ar[7] = 64; // это запись значения 64 в массив на 7 место
}
Надо изменять число 0x64 оно в массиве находится под индексом 6. Нумерация в массивах начинается с 0 а не с 1. Мы в определении массива указали размер 10 элементов, но счет идет от 0 до 9.
Надо изменять число 0x64 оно в массиве находится под индексом 6. Нумерация в массивах начинается с 0 а не с 1. Мы в определении массива указали размер 10 элементов, но счет идет от 0 до 9.
Точно! теперь работает!
Casper17, сообщите мне ваши реквизиты на aae62@list.ru я вас отблагодарю за помощь!
Надо изменять число 0x64 оно в массиве находится под индексом 6. Нумерация в массивах начинается с 0 а не с 1. Мы в определении массива указали размер 10 элементов, но счет идет от 0 до 9.
да именно так
и еще посмотрел бегло описание похоже пока работает внутреннея OS не работает ТА
теперь хотелось бы понять, как с АЦП ардуино отправить данные на дисплей,
и вывести их там в цифровом и графическом виде ?
Начните с видеоуроках, создайте проект, где будут использоваться переменные, поля ввода, кнопки и т.д. и чтобы в проекте можно было менять значения и наблюдать за этим, а потом через команды, с помощью ардуино уже попробовать считать значения или записать
Кто владеет такими дисплеями, скиньте пожалуйста фото, как выглядят шрифты в дисплее и какие шрифты вы туда заливаете? Хочется посмотреть на качество! Спасибо!
Кто владеет такими дисплеями, скиньте пожалуйста фото, как выглядят шрифты в дисплее и какие шрифты вы туда заливаете? Хочется посмотреть на качество! Спасибо!
ну как , нашли что ?
дык для DGUS ( II ) можно же с винды загрузить же шрифты , посредством их программулинки.
Собираю инфу . (есть свыше 10ка примеров с оф. сайта , 3D принтеров , .. но они DGUS , и на этом диспе не работают )
модель DMT48270C043_04WN принадлежит T5UIC1, простой экран инструкции последовательного порта.
программой DGUS не поддерживается.
Просто говоря , минимум что нужно это создать на карте памяти папку DWIN_SET , и накидать туда картинок JPEG 480*272 , с названием от 0.jpeg 1.jpeg .... 15.jpeg .Если надо вывести на него текст , грубо говоря так и выводим как в монитор порта Serial.println("Privet"); , только спереди надо добавить несколько байтов означающих цвета, размер шрифта, координаты , а после добавить оконцовку посылки. С выводом переменных похоже. Картинки jpeg с качеством 50-80% обычно вешают 10-20кбайт . (ограничение 16 полноразмерных картинок, но возможно это как-то обходится). Всего память этого диспа под картинки + иконки = 512 кбайт . Надо вставить карту microSD, включить питание , подождать несколько секунд пока перепишутся файлы в память дисплея, синий экран сменится на красный. Выключить питание, вытащить карту. Всё. При включении питания, файл 0.jpeg сам появится на экране. Другие файлы перебираются ардуинкой по uart 115200 командами. Для пакетной конвертации картинок , использовал FastStone Image Viewer . в форуме dwin рекомендуют JPEG-Imager , не китайскую версию нашел здесь https://soft.mydiv.net/win/dlfilee2f2c_239932/JPEG-Imager/ji252u.zip , но она обрабатывает файлы по одиночке, по умолчанию YCbCr 4:1:1 , если выставить 4:4:4 , то скорость вывода картинок замедляется, с ~0.3сек до ~0.5сек. Дисп если не успевает выводить картинки по командам ардуинки , то складывает их в свой буфер, потом от туда последовательно берет и выполняет. Помимо картинок , дисплей может рисовать по командам точки, линии , прямоугольники. Имеет доступное ОЗУ , ПЗУ , куда можно с ардуинки подгружать новые иконки, шрифт во время работы, какие нибудь данные. Дисп имеет свой шрифт, и крупные цифры. Умеет перемещать прямоугольные области на экране.
Поскольку производство процессора T5 разработано и спроектировано самим Дивином, дизайн новых продуктов основан на процессоре T5. В прошлом продукты представляли собой один и тот же драйвер (например, DGUS - это все модули K600 + на базе процессора T02), но текущие продукты будут разрабатываться с соответствующими ядрами в соответствии с различными приложениями, так что у каждого продукта есть метод разработки, функция и эффективность затрат. Сформировал свои особенности. Разработчики также имеют больше возможностей при выборе продуктов. В то же время, благодаря высокой производительности самого процессора T5, если существующие продукты не могут соответствовать функциональным требованиям, вы также можете разрабатывать на основе T5, чтобы получить действительно мощный и дешевый «совершенный» продукт.
В настоящее время ядрами Divin являются T5UIC1, T5UIC2, T5UIC3, T5UIC4, T5UID1, T5UID2, T5UID3. Среди них T5UIC1, T5UIC2, T5UIC3 и T5UIC4 в основном предназначены для дорогостоящих приложений.С точки зрения методов разработки, кроме T5UIC3, все они являются методами разработки набора команд. T5UID1, T5UID2, T5UID3 - это методы разработки DGUS 2. Условно говоря, цена выше, но она намного дешевле, чем у традиционного последовательного экрана. Ключ в том, чтобы использовать эти продукты для создания красивого интерфейса очень просто.
T5UIC1
это диспы (различие только разрешением и размером):
DMT48270C050_04WN
04-версия диспов относящихся кT5UIC1 железу(платформе) , W - температурный диаппазон, N - без тача (T - тач)
T5UIC1 в основном предназначен для приложений, которые не требуют сенсорного экрана, простых функций пользовательского интерфейса и высоких затрат.
Его основные функции включают в себя:
(1) 65K цветной TFT дисплей.
(2) Основные инструкции по рисованию, отображение текста на китайском и ASCII, поддержка значка JPEG, изображение JPEG, отображение двумерного кода.
(3) 384 Кбайт места для шрифта.
Сохраненная 6 * 12-32 * 64-точечная матрица ASCII и 12 * 12-64 * 64-точечная матрица GB2312 Библиотека китайских символов (китайские символы масштабируются на основе 16 * 16-точечной матрицы).
(4) 512 Кбайт места для хранения изображений и значков, разделенных на 16 областей памяти в соответствии с 32 КБ.
Может хранить до 16 полноэкранных изображений JPEG.
Или сохраните файлы библиотеки значков JPEG в 0-16 раз (размер файла библиотеки значков может превышать 32 КБ и занимать несколько областей памяти).
(5) Память данных SRAM 32 КБ, которая может считываться и записываться через последовательный порт. Данные теряются при отключении питания. Все питание инициализируется до 0x00.
Он в основном используется для оперативного обновления базы данных изображений и значков, а также для отображения в реальном времени значков и изображений JPEG.
(6) 16 Кбайт флэш-памяти данных, которая может считываться и записываться через последовательный порт, данные не теряются при отключении питания, а срок записи составляет 100 000 раз.
Он в основном используется в качестве хранилища данных для параметров конфигурации пользователя.
T5UIC1 - это упрощенная версия экрана последовательных команд, основанная на ЦП T5, разработанная для требований приложений, которые не требуют сенсорного экрана, простых функций пользовательского интерфейса и высоких затрат.
Его основные функции включают в себя:
(1) 65K цветной TFT дисплей.
(2) 384 Кбайт места для шрифта.
Сохраненная 6 * 12-32 * 64-точечная матрица ASCII и 12 * 12-64 * 64-точечная матрица GB2312 Библиотека китайских символов (китайские символы масштабируются на основе 16 * 16-точечной матрицы).
(3) Объем памяти изображений и значков 512 КБ разделен на 16 областей памяти в соответствии с 32 КБ.
Может хранить до 16 полноэкранных изображений JPEG.
Или сохраните файлы библиотеки значков JPEG в 0-16 раз (размер файла библиотеки значков может превышать 32 КБ и занимать несколько областей памяти).
(4) Память данных SRAM 32 КБ, которая может считываться и записываться через последовательный порт. Данные теряются при отключении питания. Вся мощность инициализируется до 0x00.
Он в основном используется для оперативного обновления базы данных изображений и значков, а также для отображения в реальном времени значков и изображений JPEG.
(5) 16 Кбайт флэш-памяти данных, которая может быть прочитана и записана через последовательный порт, данные не будут потеряны после отключения питания, а срок записи составляет 100 000 раз.
Он в основном используется в качестве хранилища данных для параметров конфигурации пользователя.
(6) Параметры конфигурации интерфейса SD / SDHC и обновленные шрифты и изображения.
(7) Процессор можно настроить для работы на частоте 250 МГц или 400 МГц.
2.3 Набор инструкций (1) Инструкции по конфигурации и интерфейсу
сначала обязательный байт AA , функция(инструкция) , данные , обязательная оконцовка CC 33 C3 3C .
функция
инструкция
объяснение
Пожать друг другу руки
0x00
Пример:
послать дисплею: Tx: AA 00 CC 33 C3 3C
дисплей должен ответить: Rx: AA 00 4F 4B CC 33 C3 3C
Регулировка яркости подсветки
0x30
DIM_Set: значение яркости подсветки, 0x00-0xFF. Задняя подсветка 0x00 выключена, самая яркая подсветка 0xFF, из которых задняя подсветка 0x01-0x1F может мигать. Значение по умолчанию при включении питания составляет 0xFF. Пример: AA 30 80 CC 33 C3 3C Яркость установлена на 50%.
Запишите данные в память
0x31
Время обработки незначительно для SRAM, Flash занимает до 1 секунды. Тип: выбор памяти для записи, 0x5A = 32 КБ SRAM, 0xA5 = 16 КБ Flash. Адрес: адрес памяти для записи данных, 0x0000-0x7FFF или 0x3FFF. Данные: строки данных для записи. Пример: AA 31 5A 00 00 31 32 33 34 CC 33 C3 3C Запись SRAM
Чтение данных памяти
0x32
Время обработки незначительно для SRAM, а задержка флэш-памяти составляет около 0,1 мс. Тип: чтение выборки памяти, 0x5A = 32 КБ SRAM, 0xA5 = 16 КБ Flash. Адрес: адрес памяти для записи данных, 0x0000-0x7FFF или 0x3FFF. Длина: длина прочитанных байтов данных, 0x01-0xF0. Данные: строка данных прочитана. Пример: Tx: AA 32 5A 00 00 04 CC 33 C3 3C Чтение SRAM Rx: AA 32 5A 00 00 04 31 32 33 34 CC 33 C3 3C Ответ на данные
Напишите картинку памяти
0x33
Время обработки может занять до 2 секунд. Запишите содержимое памяти данных SRAM 32 КБ в указанное пространство памяти изображений. PIC_ID: расположение области памяти изображения, 0x00-0x0F, 32 Кбайт на место. Пример: Tx: AA 33 5A A5 00 CC 33 C3 3C
Расширенная конфигурация последовательного порта
0x38
Bode_Set: установите скорость передачи расширенного последовательного порта, 0x0001-0x03FF. Bode_Set = 15667200 / скорость передачи, самая низкая скорость передачи - 15300. Значение по умолчанию при включении питания составляет 0x0088, что соответствует скорости передачи 115200 бит / с. Пример: AA 38 03 30 CC 33 C3 3C устанавливает скорость передачи расширенного последовательного порта на 19200 бит / с.
Расширенная последовательная передача данных
0x39
Отправьте пакет данных Datas с последовательного порта расширения. Пример: AA 39 31 32 33 34 35 36 37 38 39 CC 33 C3 3C отправляет строку «123456789» из расширенного последовательного порта.
Расширенный последовательный прием данных
0x3a
Экран активно загружает данные, полученные через расширенный последовательный порт. Len_Data: длина данных, загруженных на этот раз. Данные: данные, загруженные на этот раз. Пример: предположим, что расширенный последовательный порт получает байт данных 0x55, затем на экране будет активно загружаться AA 3A 01 55 CC 33 C3 3C.
(2) Инструкции по рисованию
инструкция
объяснение
0x01
Чистый экран, время обработки 1,5 мс (соответствует основной частоте 400 МГц, то же самое ниже). Цвет: чистый цвет экрана. Пример: AA 01 00 1F CC 33 C3 3C - заливка синим
AA 01 F8 00 CC 33 C3 3C - заливка красным
AA 01 00 00 CC 33 C3 3C - заливка черным
( 5бит Red + 6бит Green + 5бит Blue )
0x02
Заданное значение; время обработки = 0,4 * Nx * Ny * номер заданного значения, сс. Цвет: Задать цвет. Nx: фактический размер пикселя в направлении X, 0x01-0x0F. Ny: фактический размер пикселя в направлении Y, 0x01-0x0F. (Xn, Yn): последовательность координат заданной точки. Пример: AA 02 F8 00 04 04 00 08 00 08 01 00 01 00 CC 33 C3 3C
0x03
Конечная точка соединения; время обработки = 0,5 * Макс. (Длина отрезка в направлении X, длина отрезка в направлении Y), сСт. Цвет: цвет соединения, 2Bytes. (Xn, Yn): координаты конечной точки отрезка. Пример: AA 03 FF FF 00 40 00 40 01 00 01 00 CC 33 C3 3C
0x05
Прямоугольная область отображения, время обработки = 0,14 * количество пикселей в США. Режим: 0x00 = цвет. Прямоугольник отображается в цвете. 0x01 = Цвет Цвет заполняет прямоугольную область. 0x02 = Цвет XOR Данные прямоугольника, в основном используются для выбора меню / невыделения окраски. Цвет: цвет. (Xs, Ys), (Xe, Ye): координаты верхнего левого угла и нижнего правого угла прямоугольника. Пример: AA 05 02 07 E0 00 40 00 40 01 00 01 00 CC 33 C3 3C
0x09
Область экрана перемещается, время обработки = 0,20 * количество пикселей в области перемещения США . Режим: режим перемещения 7: режим перемещения, 0 = круговой сдвиг. 1 = Pan, пустая область заполнена цветом. .6-.4: написать 0. .3-.0: направление движения, 0x00 = влево. 0x01 = Верно. 0x02 = вверх. 0x03 = вниз. DIS: расстояние перемещения, количество пикселей, 0x0000-горизонтальное разрешение / 2, 2Bytes. Цвет: цвет заливки, действует только тогда, когда DIR.7 = 1. (Xs, Ys): координаты верхнего левого угла выбранной области. (Xe, Ye): координаты нижнего правого угла выделенной области. Пример: AA 09 00 00 08 FF FF 00 40 00 40 01 00 01 00 CC 33 C3 3C
(3) текстовые инструкции
инструкция
объяснение
0x11
Отображение строки символов: одна матрица 16 * 16 точек Время обработки китайских символов составляет 76 мкс, а остальные преобразуются в соответствии с соотношением точек . Режим: режим отображения. .7 Настройка регулировки ширины символа 1 = настройка 0 = не настраивать. .6 Настройка отображения цвета фона 1 = отображать 0 = не отображать. .5-.4 Написать 0. .3-.0: размер шрифта 0x00-0x09, соответствующий размер шрифта следующий: 0x00 = 6 * 12 0x01 = 8 * 16 0x02 = 10 * 20 0x03 = 12 * 24 0x04 = 14 * 28 0x05 = 16 * 32 0x06 = 20 * 40 0x07 = 24 * 48 0x08 = 28 * 56 0x09 = 32 * 64 Цвет: Цвет отображения символов. Bcolor: Цвет отображения фона персонажа. (X, y): координаты верхнего левого угла отображения строки. Строки: Строки, которые должны отображаться. Не-ASCII символы отображаются в соответствии с форматом кодировки GB2312 китайских символов. Пример: AA 11 41 FF FF 00 00 00 20 00 80 44 57 49 4E 20 B5 CF CE C4 CC 33 C3 3C
0x14
Отображение переменной данных, время обработки рассчитывается с помощью инструкции 0x11. Режим: режим отображения. .7 Настройка отображения цвета фона 1 = отображение 0 = не отображение. .6 1 = номер со знаком 0 = номер без знака. .5 1 = Отключено 0 отображается 0 = Отключено 0 Не отображается. .4 1 = Неверный 0 отображается как 0 0 = Неверный 0 отображается как пробел. .3-.0: размер шрифта, 0x00-0x09, такой же, как инструкция 0x11. Цвет: цвет отображения символов. Bcolor: Цвет отображения фона персонажа. Num_I: количество отображаемых целых чисел, 0x01-0x14. Num_F: количество отображаемых десятичных разрядов, 0x00-0x14, сумма Num_I + Num_F не может превышать 20. (X, y): координаты верхнего левого угла отображения переменной. Данные: переменные данных, до 8 байтов. Пример: AA 14 85 FF FF 00 00 0A 02 00 00 00 00 49 96 02 D2 CC 33 C3 3C
(4) Инструкции, связанные с изображениями и значками
инструкция
объяснение
0x21
Отображение QR-кода; QR_Pixel = 4 Время обработки QR-кода составляет 7,5 мс. (Х, у) координат положения отображается в виде двумерного кода; QR_Pixel: двумерный код занимает каждый пиксель размер точек, 0x01-0x0F; данных: данные отображения, вплоть до 154 байт. Размер QR-кода составляет (46 * QR_Pixel) * (46 * QR_Pixle) точечная матрица. Пример: AA 21 00 08 00 08 04 68 74 74 70 3A 2F 2F 77 77 77 2E 64 77 69 6E 2E 63 6F 6D 2E 63 6E CC 33 C3 3C
0x22
Отображение изображения в формате JPEG, разрешение 480 * 272, время сжатия формата 4: 1: 1 составляет 250 мс. Отображение изображений JPEG, сохраненных в памяти изображений размером 512 КБ. Изображения также кэшируются в виртуальной области отображения 0 # (доступно с помощью инструкции 0x27). JPEG_ID: 0x00-0x0F, соответствующий начальному идентификатору картинки, сохраненной в JPEG. Пример: AA 22 00 00 CC 33 C3 3C
0x23
Отображение значков библиотеки значков, один значок 28 * 45, режим фонового отображения, время обработки 3,2 мс . (X, y): начальная позиция первого значка, соответствующая верхнему левому углу значка. Режим: режим отображения значков. .7 Настройка отображения фона значка: 0 = фильтрация фона не отображается, 1 = отображение фона. Если фоновая фильтрация не отображается, фон должен быть чисто черным. .6 Настройка восстановления фонового изображения (действует только при .7 = 0): 0 = фоновое изображение не восстанавливается, 1 = автоматически использовать 0 # изображение виртуальной области отображения для восстановления фона. .5 Выбор интенсивности фоновой фильтрации (действителен только при .7 = 0) 0 = Нормальный, 1 = Улучшенный. 4 Не определено, запишите 0. .3-.0 Место хранения библиотеки значков, 0x00-0x0F. Icon_IDs: идентификаторы значков для отображения, каждый идентификатор представлен 1 байтом, 0x00-0xFF. Пример: AA 23 00 10 00 10 08 00 01 02 03 CC 33 C3 3C
0x24
Отображение значка памяти SRAM, один значок 28 * 45, режим отображения фона, время обработки составляет 3,1 мс . (X, y): положение отображения значка, соответствующее верхнему левому углу значка. Режим: режим отображения значков. .7 Настройка отображения фона значка: 0 = фильтрация фона не отображается, 1 = отображение фона. Если фоновая фильтрация не отображается, фон должен быть чисто черным. .6 Не определено, напишите 0. .5 Выбор интенсивности фоновой фильтрации (действителен только при .7 = 0) 0 = нормальный, 1 = расширенный. 4-.0 Не определено, написать 0. Адрес: начальный адрес памяти SRAM для хранения данных значков JPEG, 0x0000-0x7FFF. Пример: AA 24 00 10 00 10 00 00 00 CC 33 C3 3C
0x25
JPEG изображение распаковывается в виртуальную область отображения 1 #. Разрешение 480 * 272 Время сжатия формата 4: 1: 1 составляет 240 мс . Распакуйте изображение JPEG, сохраненное в памяти изображений размером 512 КБ, в виртуальную область отображения 1 #, что удобно для копирования и вставки значков. JPEG_ID: 0x00-0x0F, соответствующий начальному идентификатору картинки, сохраненной в JPEG. Пример: AA 25 01 01 CC 33 C3 3C
0x26
1 # Скопируйте и вставьте указанную область виртуальной области отображения в текущий интерфейс отображения. Время обработки области пикселя матрицы 256 * 256 точек составляет 12,5 мс (0,2 мкс на пиксель). (Xs, Ys): 1 # Координаты верхнего левого угла выбранной области значка виртуальной области отображения. (Xe, Ye): 1 # Координаты нижнего правого угла фиксированной области значка виртуальной области отображения. (X, y): координата верхнего левого угла при вставке в текущую область отображения. Пример: AA 26 00 40 00 40 01 00 01 00 00 20 00 20 CC 33 C3 3C
0x27
Скопируйте и вставьте из указанной области виртуальной области отображения в текущий интерфейс отображения. Время обработки области пикселя матрицы 256 * 256 точек составляет 12,5 мс (0,2 мкс на пиксель). Режим: режим отображения. .7 Настройка отображения фона 0 = Фоновая фильтрация не отображается, 1 = Отображение фона. Если фоновая фильтрация не отображается, фон должен быть чисто черным. .6 Настройки восстановления фонового изображения (доступно только когда .7 = 0 и .1 = 1): 0 = фоновые изображения не восстанавливаются, 1 = автоматически использовать 0 # изображения виртуальной области отображения для восстановления фона. .5 Выбор интенсивности фоновой фильтрации (действителен только при .7 = 0) 0 = нормально, 1 = улучшено. 4-.1 Зарезервировано, запись 0. .0 Выбор виртуальной области отображения 0 = 0 # виртуальная область отображения, 1 = 1 # виртуальная область отображения. (Xs, Ys): координаты верхнего левого угла выбранной области значка виртуальной области отображения. (Xe, Ye): координаты нижнего правого угла фиксированной области значка виртуальной области отображения. (X, y): координата верхнего левого угла при вставке в текущую область отображения. Пример: AA 27 01 00 40 00 40 01 00 01 00 00 40 00 40 CC 33 C3 3C
0x28
Значок анимации автоматически отображает настройки команды. (X, y): начальная позиция значка анимации, соответствующая верхнему левому углу значка. Режим: режим отображения иконки анимации. .7 Переключение управления 1 = анимация этой группы включена 0 = анимация этой группы выключена, ею можно управлять с помощью инструкции 0x29. .6 Режим запуска 1 = запуск с пиктограммы запуска 0 = запуск с последней позиции остановки. .5-.4 Не определено, напишите 0. .3-.0 Положение этой группы инструкций пиктограммы анимации, 0x00-0x0F, всего 16 групп инструкций анимации. Icon_lib: место хранения библиотеки значков, 0x00-0x0F. Icon_IDs: начальная позиция иконки анимации, 0x00-0xFF. Icon_IDe: положение иконки завершения анимации, 0x00-0xFF. Delay_time: временной интервал отображения иконки анимации, 0x00-0xFF, единица составляет 10 мс. Пример: AA 28 00 10 00 10 80 09 00 09 0A CC 33 C3 3C Установите анимацию группы 0
0x29
Значок анимации автоматически отображает командное управление. Cartoon_Set: управление переключением инструкций анимации ICON, каждый бит соответствует группе инструкций, 1 = вкл , 0 = выкл; .15 соответствует 15-й группе инструкций анимации и .0 соответствует 0-й группе инструкций анимации. Пример: AA 29 00 05 CC 33 C3 3C Включите анимационные инструкции для групп 0 и 2.
Как использовать значок JPEG для завершения интерфейса человек-машина на экране Diven (T5UIC1, T5UIC4)
наконец , выпустила на 2018-09-30 16:55:14 чтения числа 913 Favorite
расширение
Ди Вэньпин недавно запустил новый режим разработки - не прежнюю форму использования изображений BMP для обрезки по одному, а благодаря расположению и сочетанию значков JPEG. Я также почувствовал себя очень странно, когда впервые связался, в основном потому, что я привык к предыдущему методу разработки.После подробного изучения я обнаружил, что для требований, которые не так сложны, это на самом деле очень просто, то есть мое мышление необходимо изменить. В случае аналогового компьютера режим прошлой разработки эквивалентен замене всего рабочего стола одним касанием и завершению разработки интерфейса путем замены рабочего стола различными функциями. В этом режиме он имеет форму рабочего стола + значки N. Рабочим столом здесь является Di Полноэкранное фоновое изображение на текстовом экране. Раньше страница переключалась, но теперь фон не изменился, значок выше переключен. Итак, как сделать этот значок JPEG, так как его использовать?
Все мы знаем, что ни один последовательный экран не поддерживает все форматы изображений. Наиболее распространенными последовательными экранами являются изображения bmp, которые поддерживают 24-битный цвет RGB. Формат значков JPEG здесь также имеет соответствующие требования к формату. Независимо от формата иконки, которая была изначально создана, вам нужно всего лишь обработать ее в базовом режиме сжатия 444. Divin предоставляет инструмент для сжатия иконок. Просто спросите их. Хотя это небольшое программное обеспечение, его легко использовать. , Имеет функцию пакетной обработки изображений, сделать более 100 кадров иконки анимации можно конвертировать за один раз. Следует отметить, что значки должны называться по номерам, чтобы их можно было упорядочивать и называть по порядку, что будет удобнее для дальнейшей разработки.
Следующим шагом является создание стандартного файла библиотеки. Библиотека значков представляет собой набор значков. Файлы значков можно упаковать в библиотеку значков с помощью специального инструмента создания ICON. Это упростит организацию и вызов производства. После создания библиотеки значков файлы в ней не могут быть изменены или удалены по желанию. , Следует отметить, что инструментальное программное обеспечение, используемое для создания библиотеки значков JPEG, отличается от обычных инструментов, разработанных DGUS, и не может использоваться универсально. Инструмент создания библиотеки значков JPEG распознает только изображения JPEG, обработанные после 444 режима сжатия базовой линии.
————————————————
版权声明:本文为CSDN博主「恐龙蛋壳」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
есть проблемка , что картинок можно вывести только 16 ( команда 0x22 , данные от 0000 по 000F )
т.е. посылка от AA 22 00 00 CC 33 C3 3C по AA 22 00 0F CC 33 C3 3C , 0010 - уже нифига не показывает 17ю картинку 16.jpeg . манагерский ход похоже , чтоб более дорогие версии диспов покупали с бо'льшими возможностями)
Написал простой скетч , он перебирает картинки 0.jpeg - 15.jpeg загруженные через microSD :
int i;
void setup()
{
Serial.begin(115200);
}
void loop() {
// AA 22 00 00 CC 33 C3 3C - AA 22 00 0F CC 33 C3 3C
// картинки с 0-15
for (i=0 ; i<16 ; i++)
{
Serial.write(0xAA);
Serial.write(0x22);
Serial.write(0x00);
Serial.write(i);
Serial.write(0xCC);
Serial.write(0x33);
Serial.write(0xC3);
Serial.write(0x3C);
Serial.println("");
delay(300);
}
// картинки с 15-0
for (i=0 ; i<16 ; i++)
{
Serial.write(0xAA);
Serial.write(0x22);
Serial.write(0x00);
Serial.write(15-i);
Serial.write(0xCC);
Serial.write(0x33);
Serial.write(0xC3);
Serial.write(0x3C);
Serial.println("");
delay(300);
}
delay(1000);
// напишем слово Privet
// 0b01000001 - лог1 в 6 бите - включить цвет знакоместа , иначе прозрачный
byte Send2[11] = { 0xAA, 0x11, 0b00000001, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x20, 0x00, 0x80 };
Serial.write(Send2,11);
Serial.print("Privet");
byte Send3[4] = { 0xCC, 0x33, 0xC3, 0x3C };
Serial.write(Send3,4);
Serial.println("");
delay(2000);
}
и картинки ( анимация ) на microSD : https://yadi.sk/d/SJhJUJUTGq07rQ , карта должна быть 2-8гигов , отформатирована на FAT32 , сектора по 4096 байт ( 4К )
// Если есть у кого примерчики с большой анимацией + иконки для T5UIC1 , поделитесь пож.
Я вот старый, избалованный Некшном, полез разбираться с таким дисплеем и всю башку сломал.... Где у него обработки ? Как их редактировать ? Кто нибудь может на пальцах объяснить ? Или с этим вопросом в песочницу ?
Все проще... Нет у этих мониторов обработок нет, похоже... Никакого интерпретатора. Можно считать память по адресу. Этот монитор ничего кроме прямых и прямоугольников ничего рисовать не может, зато компенсирует всякими картинками. В принципе - почему бы нет....
так там и не надо ни каких итерпритаторов, вся работа с графикой сводиться к выводу картинок(аля рабочий стол) и иконок отображающих что либо. и данных.
очень просто и легко. основная работа по графике - в графическом редакторе:)
так там и не надо ни каких итерпритаторов, вся работа с графикой сводиться к выводу картинок(аля рабочий стол) и иконок отображающих что либо. и данных.
А стрелочный дисплей при таком раскладе как сделать ? :)
Да не обязательно. Понятно. Думаю рисовать будет быстрее.
И еще вопрос, если позволите. Я так понимаю, что изменения которые производит пользователь на экране(нажал кнопку, ввел какую то цифру и т.д.) нужно отслеживать, постоянно опрашивая монитор. Сам он что либо в сторону процессора не передает, нужно обязательно "спросить" (проверить значение в ячейке памяти) ?
клавиатура -в тачконтроле выбираем data input, там закладка клавиатура.
при нажатии на тач выскочет клава, на ней должны быть кнопки - Return Key Code,
каждой кнопке присваивается код соответствующий ее значению, при нажатии на нее она вернет значение в нужную переменную.
А гlе в настройках эта переменная устанавливается ? У data input не нашел настроек этой переменной :( Вообще этот компонент (data input) самый не дружественный. Где бы найти пример создания и использования клавиатуры.
А гlе в настройках эта переменная устанавливается ? У data input не нашел настроек этой переменной :( Вообще этот компонент (data input) самый не дружественный. Где бы найти пример создания и использования клавиатуры.
Спасибо ! Я не корректно выразился. Как сделать кнопку, которая загонит данные в переменную я знаю. Как работать с клавиатурами которые основаны на Return Key Code. Все примеры больших клавиатур основаны именно на этих элементах. Я подозреваю, что variable input загоняет некое значение в ячейку, а клвиатуры на базе Return Key Code позволяют собрать и редактировать в буфере текстовую строку. Вот эта функция мне не понятна...
К сожалению пример, из которого я это дернул, в себе это содержит, но не использует при запуске. Пример кстати с сайта производителя.
>>Я подозреваю, что variable input загоняет некое значение в ячейку, а клвиатуры на базе Return Key Code позволяют собрать и редактировать в буфере текстовую строку. Вот эта функция мне не понятна...
теперь это видно уже однозначно..
попытался изменить строку, ругается, что не так ?
byte Send_ar[10] = {5A, A5, 07, 82, 00, 82, 64, 32, 03, E8};
в HEX формате надо писать 0x5A 0xA5 и т.д.
так сделал, не работает..
byte Send_ar[10] = {0x5A, 0xA5, 0x07, 0x82, 0x00, 0x82, 0x64, 0x32, 0x03, 0xE8};
void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.write(Send_ar,10);
delay(1000);
Send_ar[7] = 10;
Serial.write(Send_ar,10);
delay(1000);
Send_ar[7] = 64;
}
Быть может дисплеи разные? Одни по TA общаются, другие по DGUS, DGUSII
все они по ТА общаться могут
Значения в массиве начинают отчет с 0. Вам надо менять 6 элемент массива! И данные в HEX 0x10 и 0x64 если не хотите переводить в десятичные! В документации все данные и параметры в HEX
т.е. так ?
byte Send_ar[10] = {0x5A, 0xA5, 0x07, 0x82, 0x00, 0x82, 0x64, 0x32, 0x03, 0xE8};
void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.write(Send_ar,10);
delay(1000);
Send_ar[6] = 0x10;
Serial.write(Send_ar,10);
delay(1000);
Send_ar[6] = 0x64;
}
сообщение 130 картинка, откуда ее взяли? файл ссылка?
ссылка в сообщении 125
сделал так, не работает !
byte Send_ar[10] = {0x5A, 0xA5, 0x07, 0x82, 0x00, 0x82, 0x64, 0x32, 0x03, 0xE8};void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.write(Send_ar,10);
delay(1000);
Send_ar[6] = 0x10;
Serial.write(Send_ar,10);
delay(1000);
Send_ar[6] = 0x64;
}
byte Send_ar[10] = {0x5A, 0xA5, 0x07, 0x82, 0x00, 0x82, 0x64, 0x32, 0x03, 0xE8}; // это массив который передается в уарт
/ /byte Send_ar[10] это размер массива 10 бит
void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.write(Send_ar,10); // это команда отправки массива в уарт
delay(1000);
Send_ar[7] = 10; // это запись значения 10 в массив на 7 место
Serial.write(Send_ar,10); // это команда отправки массива в уарт
delay(1000);
Send_ar[7] = 64; // это запись значения 64 в массив на 7 место
}
Надо изменять число 0x64 оно в массиве находится под индексом 6. Нумерация в массивах начинается с 0 а не с 1. Мы в определении массива указали размер 10 элементов, но счет идет от 0 до 9.
Точно! теперь работает!
Casper17, сообщите мне ваши реквизиты на aae62@list.ru я вас отблагодарю за помощь!
Надо изменять число 0x64 оно в массиве находится под индексом 6. Нумерация в массивах начинается с 0 а не с 1. Мы в определении массива указали размер 10 элементов, но счет идет от 0 до 9.
и еще посмотрел бегло описание похоже пока работает внутреннея OS не работает ТА
то есть комманды разные
теперь хотелось бы понять, как с АЦП ардуино отправить данные на дисплей,
и вывести их там в цифровом и графическом виде ?
теперь хотелось бы понять, как с АЦП ардуино отправить данные на дисплей,
и вывести их там в цифровом и графическом виде ?
Начните с видеоуроках, создайте проект, где будут использоваться переменные, поля ввода, кнопки и т.д. и чтобы в проекте можно было менять значения и наблюдать за этим, а потом через команды, с помощью ардуино уже попробовать считать значения или записать
Кто владеет такими дисплеями, скиньте пожалуйста фото, как выглядят шрифты в дисплее и какие шрифты вы туда заливаете? Хочется посмотреть на качество! Спасибо!
Кто владеет такими дисплеями, скиньте пожалуйста фото, как выглядят шрифты в дисплее и какие шрифты вы туда заливаете? Хочется посмотреть на качество! Спасибо!
ну как , нашли что ?
дык для DGUS ( II ) можно же с винды загрузить же шрифты , посредством их программулинки.
есть пример в http://www.ampdisplay.com/download1.php?cat=HMI%20UART(DWIN)&sub_cat=DGUS
DGUS-Toolbox -> 800480newDEMO , там крупный шрифт картинками в папке 90_grass
здесь подборка видео работы с дисплеем https://www.youtube.com/channel/UCLmhCvRy891zbIMWXu3Effg
копаю простецкий DWIN HMI дисп DMT48270C043_04WN , который не относится к TA / DGUS II ( http://www.ampdisplay.com/download1.php?cat=HMI%20UART(DWIN)&sub_cat=TA ) , а к TC . платформа T5UIC1 (дисплеи с концовкой _04WN )
Собираю инфу . (есть свыше 10ка примеров с оф. сайта , 3D принтеров , .. но они DGUS , и на этом диспе не работают )
Просто говоря , минимум что нужно это создать на карте памяти папку DWIN_SET , и накидать туда картинок JPEG 480*272 , с названием от 0.jpeg 1.jpeg .... 15.jpeg . Если надо вывести на него текст , грубо говоря так и выводим как в монитор порта Serial.println("Privet"); , только спереди надо добавить несколько байтов означающих цвета, размер шрифта, координаты , а после добавить оконцовку посылки. С выводом переменных похоже. Картинки jpeg с качеством 50-80% обычно вешают 10-20кбайт . (ограничение 16 полноразмерных картинок, но возможно это как-то обходится). Всего память этого диспа под картинки + иконки = 512 кбайт . Надо вставить карту microSD, включить питание , подождать несколько секунд пока перепишутся файлы в память дисплея, синий экран сменится на красный. Выключить питание, вытащить карту. Всё. При включении питания, файл 0.jpeg сам появится на экране. Другие файлы перебираются ардуинкой по uart 115200 командами. Для пакетной конвертации картинок , использовал FastStone Image Viewer . в форуме dwin рекомендуют JPEG-Imager , не китайскую версию нашел здесь https://soft.mydiv.net/win/dlfilee2f2c_239932/JPEG-Imager/ji252u.zip , но она обрабатывает файлы по одиночке, по умолчанию YCbCr 4:1:1 , если выставить 4:4:4 , то скорость вывода картинок замедляется, с ~0.3сек до ~0.5сек. Дисп если не успевает выводить картинки по командам ардуинки , то складывает их в свой буфер, потом от туда последовательно берет и выполняет. Помимо картинок , дисплей может рисовать по командам точки, линии , прямоугольники. Имеет доступное ОЗУ , ПЗУ , куда можно с ардуинки подгружать новые иконки, шрифт во время работы, какие нибудь данные. Дисп имеет свой шрифт, и крупные цифры. Умеет перемещать прямоугольные области на экране.
Немного найденной и переведеной гуглопереводчиком инфы ( полный текст по всем платформам DWIN https://blog.csdn.net/DWINdaisy_chen/article/details/82424360 ) :
DMT32240C028_04WN
DMT32240C035_04WN
DMT48320C035_04WN
DMT48270C043_04WN
04-версия диспов относящихся к T5UIC1 железу(платформе) , W - температурный диаппазон, N - без тача (T - тач)
Команды инструкции T5UIC1 ( https://blog.csdn.net/DWINdaisy_chen/article/details/81868954 ) :
2.3 Набор инструкций
(1) Инструкции по конфигурации и интерфейсу
сначала обязательный байт AA , функция(инструкция) , данные , обязательная оконцовка CC 33 C3 3C .
послать дисплею:
Tx: AA 00 CC 33 C3 3C
дисплей должен ответить:
Rx: AA 00 4F 4B CC 33 C3 3C
Задняя подсветка 0x00 выключена, самая яркая подсветка 0xFF, из которых задняя подсветка 0x01-0x1F
может мигать.
Значение по умолчанию при включении питания составляет 0xFF.
Пример: AA 30 80 CC 33 C3 3C Яркость установлена на 50%.
Тип: выбор памяти для записи, 0x5A = 32 КБ SRAM, 0xA5 = 16 КБ Flash.
Адрес: адрес памяти для записи данных, 0x0000-0x7FFF или 0x3FFF.
Данные: строки данных для записи.
Пример: AA 31 5A 00 00 31 32 33 34 CC 33 C3 3C Запись SRAM
Тип: чтение выборки памяти, 0x5A = 32 КБ SRAM, 0xA5 = 16 КБ Flash.
Адрес: адрес памяти для записи данных, 0x0000-0x7FFF или 0x3FFF.
Длина: длина прочитанных байтов данных, 0x01-0xF0.
Данные: строка данных прочитана.
Пример:
Tx: AA 32 5A 00 00 04 CC 33 C3 3C Чтение SRAM
Rx: AA 32 5A 00 00 04 31 32 33 34 CC 33 C3 3C Ответ на данные
Запишите содержимое памяти данных SRAM 32 КБ в указанное пространство памяти изображений.
PIC_ID: расположение области памяти изображения, 0x00-0x0F, 32 Кбайт на место.
Пример: Tx: AA 33 5A A5 00 CC 33 C3 3C
конфигурация последовательного порта
Bode_Set = 15667200 / скорость передачи, самая низкая скорость передачи - 15300.
Значение по умолчанию при включении питания составляет 0x0088, что соответствует скорости передачи 115200 бит / с.
Пример:
AA 38 03 30 CC 33 C3 3C
устанавливает скорость передачи расширенного последовательного порта на 19200 бит / с.
передача данных
Пример:
AA 39 31 32 33 34 35 36 37 38 39 CC 33 C3 3C
отправляет строку «123456789» из расширенного последовательного порта.
прием данных
Len_Data: длина данных, загруженных на этот раз.
Данные: данные, загруженные на этот раз.
Пример:
предположим, что расширенный последовательный порт получает байт данных 0x55, затем на экране будет активно загружаться
AA 3A 01 55 CC 33 C3 3C.
(2) Инструкции по рисованию
Цвет: чистый цвет экрана.
Пример: AA 01 00 1F CC 33 C3 3C - заливка синим
AA 01 F8 00 CC 33 C3 3C - заливка красным
AA 01 00 00 CC 33 C3 3C - заливка черным
( 5бит Red + 6бит Green + 5бит Blue )
Цвет: Задать цвет.
Nx: фактический размер пикселя в направлении X, 0x01-0x0F.
Ny: фактический размер пикселя в направлении Y, 0x01-0x0F.
(Xn, Yn): последовательность координат заданной точки.
Пример: AA 02 F8 00 04 04 00 08 00 08 01 00 01 00 CC 33 C3 3C
Цвет: цвет соединения, 2Bytes.
(Xn, Yn): координаты конечной точки отрезка.
Пример: AA 03 FF FF 00 40 00 40 01 00 01 00 CC 33 C3 3C
Режим:
0x00 = цвет. Прямоугольник отображается в цвете.
0x01 = Цвет Цвет заполняет прямоугольную область.
0x02 = Цвет XOR Данные прямоугольника, в основном используются для выбора меню / невыделения окраски.
Цвет: цвет.
(Xs, Ys), (Xe, Ye): координаты верхнего левого угла и нижнего правого угла прямоугольника.
Пример: AA 05 02 07 E0 00 40 00 40 01 00 01 00 CC 33 C3 3C
Режим: режим перемещения
7: режим перемещения, 0 = круговой сдвиг. 1 = Pan, пустая область заполнена цветом.
.6-.4: написать 0.
.3-.0: направление движения, 0x00 = влево. 0x01 = Верно. 0x02 = вверх. 0x03 = вниз.
DIS: расстояние перемещения, количество пикселей, 0x0000-горизонтальное разрешение / 2, 2Bytes.
Цвет: цвет заливки, действует только тогда, когда DIR.7 = 1.
(Xs, Ys): координаты верхнего левого угла выбранной области.
(Xe, Ye): координаты нижнего правого угла выделенной области.
Пример: AA 09 00 00 08 FF FF 00 40 00 40 01 00 01 00 CC 33 C3 3C
(3) текстовые инструкции
Режим: режим отображения.
.7 Настройка регулировки ширины символа 1 = настройка 0 = не настраивать.
.6 Настройка отображения цвета фона 1 = отображать 0 = не отображать.
.5-.4 Написать 0.
.3-.0: размер шрифта 0x00-0x09, соответствующий размер шрифта следующий:
0x00 = 6 * 12 0x01 = 8 * 16 0x02 = 10 * 20 0x03 = 12 * 24 0x04 = 14 * 28
0x05 = 16 * 32 0x06 = 20 * 40 0x07 = 24 * 48 0x08 = 28 * 56 0x09 = 32 * 64
Цвет: Цвет отображения символов.
Bcolor: Цвет отображения фона персонажа.
(X, y): координаты верхнего левого угла отображения строки.
Строки: Строки, которые должны отображаться. Не-ASCII символы отображаются в соответствии с форматом кодировки GB2312 китайских символов.
Пример:
AA 11 41 FF FF 00 00 00 20 00 80 44 57 49 4E 20 B5 CF CE C4 CC 33 C3 3C
Режим: режим отображения.
.7 Настройка отображения цвета фона 1 = отображение 0 = не отображение.
.6 1 = номер со знаком 0 = номер без знака.
.5 1 = Отключено 0 отображается 0 = Отключено 0 Не отображается.
.4 1 = Неверный 0 отображается как 0 0 = Неверный 0 отображается как пробел.
.3-.0: размер шрифта, 0x00-0x09, такой же, как инструкция 0x11.
Цвет: цвет отображения символов.
Bcolor: Цвет отображения фона персонажа.
Num_I: количество отображаемых целых чисел, 0x01-0x14.
Num_F: количество отображаемых десятичных разрядов, 0x00-0x14, сумма Num_I + Num_F не может превышать 20.
(X, y): координаты верхнего левого угла отображения переменной.
Данные: переменные данных, до 8 байтов.
Пример: AA 14 85 FF FF 00 00 0A 02 00 00 00 00 49 96 02 D2 CC 33 C3 3C
(4) Инструкции, связанные с изображениями и значками
(Х, у) координат положения отображается в виде двумерного кода;
QR_Pixel: двумерный код занимает каждый пиксель размер точек, 0x01-0x0F;
данных: данные отображения, вплоть до 154 байт.
Размер QR-кода составляет (46 * QR_Pixel) * (46 * QR_Pixle) точечная матрица.
Пример: AA 21 00 08 00 08 04 68 74 74 70 3A 2F 2F 77 77 77 2E 64 77 69
6E 2E 63 6F 6D 2E 63 6E CC 33 C3 3C
Отображение изображений JPEG, сохраненных в памяти изображений размером 512 КБ.
Изображения также кэшируются в виртуальной области отображения 0 # (доступно с помощью инструкции 0x27).
JPEG_ID: 0x00-0x0F, соответствующий начальному идентификатору картинки, сохраненной в JPEG.
Пример: AA 22 00 00 CC 33 C3 3C
(X, y): начальная позиция первого значка, соответствующая верхнему левому углу значка.
Режим: режим отображения значков.
.7 Настройка отображения фона значка: 0 = фильтрация фона не отображается, 1 = отображение фона.
Если фоновая фильтрация не отображается, фон должен быть чисто черным.
.6 Настройка восстановления фонового изображения (действует только при .7 = 0):
0 = фоновое изображение не восстанавливается, 1 = автоматически использовать 0 # изображение виртуальной области отображения для восстановления фона.
.5 Выбор интенсивности фоновой фильтрации (действителен только при .7 = 0) 0 = Нормальный, 1 = Улучшенный.
4 Не определено, запишите 0.
.3-.0 Место хранения библиотеки значков, 0x00-0x0F.
Icon_IDs: идентификаторы значков для отображения, каждый идентификатор представлен 1 байтом, 0x00-0xFF.
Пример: AA 23 00 10 00 10 08 00 01 02 03 CC 33 C3 3C
(X, y): положение отображения значка, соответствующее верхнему левому углу значка.
Режим: режим отображения значков.
.7 Настройка отображения фона значка: 0 = фильтрация фона не отображается, 1 = отображение фона.
Если фоновая фильтрация не отображается, фон должен быть чисто черным.
.6 Не определено, напишите 0.
.5 Выбор интенсивности фоновой фильтрации (действителен только при .7 = 0) 0 = нормальный, 1 = расширенный.
4-.0 Не определено, написать 0.
Адрес: начальный адрес памяти SRAM для хранения данных значков JPEG, 0x0000-0x7FFF.
Пример: AA 24 00 10 00 10 00 00 00 CC 33 C3 3C
Разрешение 480 * 272 Время сжатия формата 4: 1: 1 составляет 240 мс .
Распакуйте изображение JPEG, сохраненное в памяти изображений размером 512 КБ, в виртуальную область отображения 1 #, что удобно
для копирования и вставки значков.
JPEG_ID: 0x00-0x0F, соответствующий начальному идентификатору картинки, сохраненной в JPEG.
Пример: AA 25 01 01 CC 33 C3 3C
Время обработки области пикселя матрицы 256 * 256 точек составляет 12,5 мс (0,2 мкс на пиксель).
(Xs, Ys): 1 # Координаты верхнего левого угла выбранной области значка виртуальной области отображения.
(Xe, Ye): 1 # Координаты нижнего правого угла фиксированной области значка виртуальной области отображения.
(X, y): координата верхнего левого угла при вставке в текущую область отображения.
Пример: AA 26 00 40 00 40 01 00 01 00 00 20 00 20 CC 33 C3 3C
Время обработки области пикселя матрицы 256 * 256 точек составляет 12,5 мс (0,2 мкс на пиксель).
Режим: режим отображения.
.7 Настройка отображения фона 0 = Фоновая фильтрация не отображается, 1 = Отображение фона.
Если фоновая фильтрация не отображается, фон должен быть чисто черным.
.6 Настройки восстановления фонового изображения (доступно только когда .7 = 0 и .1 = 1):
0 = фоновые изображения не восстанавливаются, 1 = автоматически использовать 0 # изображения виртуальной области отображения для восстановления фона.
.5 Выбор интенсивности фоновой фильтрации (действителен только при .7 = 0) 0 = нормально, 1 = улучшено.
4-.1 Зарезервировано, запись 0.
.0 Выбор виртуальной области отображения 0 = 0 # виртуальная область отображения, 1 = 1 # виртуальная область отображения.
(Xs, Ys): координаты верхнего левого угла выбранной области значка виртуальной области отображения.
(Xe, Ye): координаты нижнего правого угла фиксированной области значка виртуальной области отображения.
(X, y): координата верхнего левого угла при вставке в текущую область отображения.
Пример: AA 27 01 00 40 00 40 01 00 01 00 00 40 00 40 CC 33 C3 3C
(X, y): начальная позиция значка анимации, соответствующая верхнему левому углу значка.
Режим: режим отображения иконки анимации.
.7 Переключение управления 1 = анимация этой группы включена 0 = анимация этой группы выключена, ею можно управлять с помощью инструкции 0x29.
.6 Режим запуска 1 = запуск с пиктограммы запуска 0 = запуск с последней позиции остановки.
.5-.4 Не определено, напишите 0.
.3-.0 Положение этой группы инструкций пиктограммы анимации, 0x00-0x0F, всего 16 групп инструкций анимации.
Icon_lib: место хранения библиотеки значков, 0x00-0x0F.
Icon_IDs: начальная позиция иконки анимации, 0x00-0xFF.
Icon_IDe: положение иконки завершения анимации, 0x00-0xFF.
Delay_time: временной интервал отображения иконки анимации, 0x00-0xFF, единица составляет 10 мс.
Пример: AA 28 00 10 00 10 80 09 00 09 0A CC 33 C3 3C Установите анимацию группы 0
Cartoon_Set: управление переключением инструкций анимации ICON,
каждый бит соответствует группе инструкций, 1 = вкл , 0 = выкл;
.15 соответствует 15-й группе инструкций анимации и .0 соответствует 0-й группе инструкций анимации.
Пример: AA 29 00 05 CC 33 C3 3C Включите анимационные инструкции для групп 0 и 2.
PDF по инструкциям к нему (T5UIC1 Kernel Application Guid) можно скачать здесь http://www.dwin.com.cn/service/en/file/id/27
Картинки как пользовать:
https://blog.csdn.net/DWINdaisy_chen/article/details/82911205 :
есть проблемка , что картинок можно вывести только 16 ( команда 0x22 , данные от 0000 по 000F )
т.е. посылка от AA 22 00 00 CC 33 C3 3C по AA 22 00 0F CC 33 C3 3C , 0010 - уже нифига не показывает 17ю картинку 16.jpeg . манагерский ход похоже , чтоб более дорогие версии диспов покупали с бо'льшими возможностями)
здесь http://programmersought.com/article/61771386309/ вроде описано как это можно обойти через создания файла иконок, но пока не догнал как это надо провернуть.
// для самого крайнего случая , прошивка дисплея (обновление ядра) http://www.dwin.com.cn/service/en/file/id/13 выбрать галочкой Kernel Upgrade , скачать T5 CPU kernel program20191221 -> T5UIC1_V21.BIN
попался китайский примерчик T5UIC1 arduino , http://bbs.elecfans.com/jishu_1706628_1_1.html ,
но в исходниках не было файлов microsd для дисплея . да и скетч не компилится.
исходники пересохранил здесь https://yadi.sk/d/xECGjywCI_ZbIQ , там есть какая-то либа DWIN x_dwin_t5_lib.h x_dwin_t5_lib.cpp , в ней реализованы функции T5UIC1 .
Еще одну либу с примерами нашел здесь : dwin.h https://blog.csdn.net/ZXC_ABC/article/details/84871823
примеры:
// еще немного кодинга
http://bbs.elecfans.com/jishu_1706611_1_1.html ,
http://bbs.elecfans.com/jishu_1706584_1_1.html , исходники на GDF103RCT6 пересохранил здесь https://yadi.sk/d/oL1YpZB5JfrHMA , но там тож неоказалось обещанных файлов для диспа.
Написал простой скетч , он перебирает картинки 0.jpeg - 15.jpeg загруженные через microSD :
и картинки ( анимация ) на microSD : https://yadi.sk/d/SJhJUJUTGq07rQ , карта должна быть 2-8гигов , отформатирована на FAT32 , сектора по 4096 байт ( 4К )
// Если есть у кого примерчики с большой анимацией + иконки для T5UIC1 , поделитесь пож.
Да это исследование прям на дисер тянет. :) Спасибо.
Смех, смехом, а информация полезная...
Я вот старый, избалованный Некшном, полез разбираться с таким дисплеем и всю башку сломал.... Где у него обработки ? Как их редактировать ? Кто нибудь может на пальцах объяснить ? Или с этим вопросом в песочницу ?
только по видео примерам, тут https://www.youtube.com/channel/UCLmhCvRy891zbIMWXu3Effg
если получится разобраться, дайте знать, сделаю заказ...
Все проще... Нет у этих мониторов обработок нет, похоже... Никакого интерпретатора. Можно считать память по адресу. Этот монитор ничего кроме прямых и прямоугольников ничего рисовать не может, зато компенсирует всякими картинками. В принципе - почему бы нет....
Да это исследование прям на дисер тянет. :) Спасибо.
Кстати, присоединяюсь. Спасибо !
так там и не надо ни каких итерпритаторов, вся работа с графикой сводиться к выводу картинок(аля рабочий стол) и иконок отображающих что либо. и данных.
очень просто и легко. основная работа по графике - в графическом редакторе:)
ссыль на 04WN
https://www.youtube.com/watch?v=2ElTg_K1QWc&feature=emb_logo
извиняйте за качество съемки - на телефон:(
сейчас докапываю дисплей под DGUS2 с емкостным сенсором и IPS матрицей, очень нравиться.
так там и не надо ни каких итерпритаторов, вся работа с графикой сводиться к выводу картинок(аля рабочий стол) и иконок отображающих что либо. и данных.
А стрелочный дисплей при таком раскладе как сделать ? :)
последовательностью иконок - то есть на первой стрелка на нуле, на второй чуть отклонилась итд
как гифка это для ТА
в более продвинутых можно картинку со стрелкой крутить.
сегодня может засниму
сегодня может засниму
Да не обязательно. Понятно. Думаю рисовать будет быстрее.
И еще вопрос, если позволите. Я так понимаю, что изменения которые производит пользователь на экране(нажал кнопку, ввел какую то цифру и т.д.) нужно отслеживать, постоянно опрашивая монитор. Сам он что либо в сторону процессора не передает, нужно обязательно "спросить" (проверить значение в ячейке памяти) ?
рисовать однозчно быстрее
сам все в порт сыпет, если для переменной указанна галка отправлять
сам все в порт сыпет, если для переменной указанна галка отправлять
Спасибо, полезно. Если не сложно, расскажите как сделать клавиатуру ? По примерам нихрена не понятно.
клавиатура -в тачконтроле выбираем data input, там закладка клавиатура.
при нажатии на тач выскочет клава, на ней должны быть кнопки - Return Key Code,
каждой кнопке присваивается код соответствующий ее значению, при нажатии на нее она вернет значение в нужную переменную.
видео https://www.youtube.com/watch?v=H4BQpx2tFuA&t=18s
клавиатура -в тачконтроле выбираем data input, там закладка клавиатура.
при нажатии на тач выскочет клава, на ней должны быть кнопки - Return Key Code,
каждой кнопке присваивается код соответствующий ее значению, при нажатии на нее она вернет значение в нужную переменную.
А гlе в настройках эта переменная устанавливается ? У data input не нашел настроек этой переменной :( Вообще этот компонент (data input) самый не дружественный. Где бы найти пример создания и использования клавиатуры.
[/quote]
А гlе в настройках эта переменная устанавливается ? У data input не нашел настроек этой переменной :( Вообще этот компонент (data input) самый не дружественный. Где бы найти пример создания и использования клавиатуры.
[/quote]
как то так
какаято фигня тута с картинками:(
Спасибо ! Я не корректно выразился. Как сделать кнопку, которая загонит данные в переменную я знаю. Как работать с клавиатурами которые основаны на Return Key Code. Все примеры больших клавиатур основаны именно на этих элементах. Я подозреваю, что variable input загоняет некое значение в ячейку, а клвиатуры на базе Return Key Code позволяют собрать и редактировать в буфере текстовую строку. Вот эта функция мне не понятна...
К сожалению пример, из которого я это дернул, в себе это содержит, но не использует при запуске. Пример кстати с сайта производителя.
>>Я подозреваю, что variable input загоняет некое значение в ячейку, а клвиатуры на базе Return Key Code позволяют собрать и редактировать в буфере текстовую строку. Вот эта функция мне не понятна...
вечером попробую снять как это работает
Если не сложно. Буду благодарен. Только как работает я вижу на новом дисплее, там это загружено с завода. А вот как это выстроить - не понятно.
клавиатура
https://www.youtube.com/watch?v=moLYK8F8USE&t=1s
Большое спасибо. Очень помогли. Думаю полезно будет многим.
Откуда брать список команд (коды), у меня DGUS II , есть таблица, но как на основе этих данных сделать посылку - не понятно.
вот например яркость
0x5A, 0xA5, 0x05, 0x82, 0x00, 0x82, 0x64, 0x32
0x5A, 0xA5 - преамбула
0x05, - длина пакета
0x82 - команда
D2, D1, D4, D3 (так обозначено 0
0x00, 0x82, - ЧТО ВОТ ЭТО ТАКОЕ ?
0x64, 0x32 - 64-яркость в работе, 32-яркость в ожидании
Че то отвечает с десятого раза, похоже потому что хендшейк я ему никак подобрать не могу.
Блин развели протоколов... дурдом, без китайского тяжело :(
Откуда брать список команд (коды), у меня DGUS II
125 сообщение этой темы, там ссылка и какой файл нужен. все на китайском, но гугл хорошо переводит
http://www.ampdisplay.com/download1.php тут видео с названием Video: RTC Settings
там есть как клавиатуру создавать
хендшейк (рукопожатие) ему не нужен
Спасибо. Буду изучать китайский.
Только не понятно, почему дисплей начинает отвечать на 10-20 посылку.
а на этот запрос 5A A5 04 83 00 0F 01
как и что отвечает?
Сей час проверю.
0x00, 0x82, - ЧТО ВОТ ЭТО ТАКОЕ ?
регистр (номер) куда данные пишутся
в данном случае - LED_Config
5A A5 07 82 0082 64 32 03E8
5A A5 заголовок кадра
07 длина данных
82 команда записи
0082 регистр (его номер)
64 уровень нормальный
32 уровень для снижения (если запрограммировано в конфигурации дисплея)
03E8 какой то хвост он есть в даташите, но нет описания с ним работает и без него тоже
Кстати а как считается эта контрольная сумма ? Чего то никак найти не могу.
с завода дисплей сконфигурирован для работы без контрольной суммы, ничего считать не надо.
Да, спасибо с этим разобрался. С контрольной сумой тоже (тривиальная CRC16).
Я кажется crc включил :) Надо выключить .
Где то видел какие то команды ресетов. Но пробовать пока боюсь.
Я кажется crc включил :) Надо выключить .
это можно сделать только в фале конфигурации железа, вы ее меняли?
картинка ниже