Форум РадиоКот • Просмотр темы - LCD 240X160 на чипсете HD66204/HD66205
Сообщения без ответов | Активные темы
Страница 1 из 1
[ Сообщений: 12 ]
Автор
Сообщение
maxlab
Заголовок сообщения: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Чт окт 09, 2014 23:26:48
Потрогал лапой паяльник
Карма: 7
Рейтинг сообщений: 26
Зарегистрирован: Вт апр 23, 2013 22:21:18Сообщений: 377Откуда: KUBAN, Krasnodar
Рейтинг сообщения: 0
Доброе время суток коллеги!
Попался ко мне этот зверь. Скрутил с медицинского прибора который кардиограмму оперируемого в реал-тайм показывает. Есть желание интегрировать его в очередную поделку. На задней стороне дисплея маркировка 2521H1-0E
Исходные данные таковы:
- Дисплей без контроллера на борту.
- Изначально он управляется специализированной платой с древним процессором.
- Варианта заюзать эту плату нет. Неизвестны управляющие коды и протокол обмена. Хотя плата живая, инициализация-очистка проходит.
- Никогда не пользовал дисплеи без контроллера.
- Будущая поделка планируется на dsPIC30F3014 под управлением RTOS "ОСА". Часть ресурсов выделяется под алгоритм прорисовки дисплея. ОЗУ дисплея UM62256 или подобное SRAM.
Вопросы:
- Нужны демосырцы для управления этим чипсетом под любой процессор
Что сделано:
- Разобрался с распиновкой дисплея.
Кто может что посоветовать - welcome
_________________ Девице - Device
Вернуться наверх
Реклама
maxlab
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Вс окт 12, 2014 21:12:15
Потрогал лапой паяльник
Карма: 7
Рейтинг сообщений: 26
Зарегистрирован: Вт апр 23, 2013 22:21:18Сообщений: 377Откуда: KUBAN, Krasnodar
Рейтинг сообщения: 0
Нашел статейку как управлять чипсетом. В принципе, ничего сложного. Только на плиску заморачиваться не буду. Думаю скорости 30 mips (dsPIC30F3014) будет достаточно для управления дисплеем и для других несложных задач.
http://kazus.ru/shemes/showpage/0/884/1.html
_________________ Девице - Device
Вернуться наверх
Реклама
maxlab
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Чт май 23, 2019 17:32:05
Потрогал лапой паяльник
Карма: 7
Рейтинг сообщений: 26
Зарегистрирован: Вт апр 23, 2013 22:21:18Сообщений: 377Откуда: KUBAN, Krasnodar
Рейтинг сообщения: 0
Наконец дошли руки до этого пенсионера. Для начала - инвертор ccfl. Промышленная схема, работает неубиваемо! Индуктивности в первичке и во вторичке скажу позже. Колво витков, кому надо, посчитаете... Есть в сети калькулятор для броневых сердечников.
Вложения:
Комментарий к файлу: Инвертор
ccfl.jpg [44.97 KiB]
Скачиваний: 346
_________________ Девице - Device
Вернуться наверх
Реклама
maxlab
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Пн май 25, 2020 21:30:16
Потрогал лапой паяльник
Карма: 7
Рейтинг сообщений: 26
Зарегистрирован: Вт апр 23, 2013 22:21:18Сообщений: 377Откуда: KUBAN, Krasnodar
Рейтинг сообщения: 0
Провел замеры индуктивностей в трансформаторе. Первичные обмотки 830uH и 838 uH. Высоковольтная - 1.550H, для источника отрицательного напряжения - 45mH. Первичные обмотки намотаны в разных секциях 2х секционного каркаса! Вторичные тоже в разных секциях. Для обеспечения зазора, внутри расположена картонная прокладка толщиной 0.2-0.3 мм. Транс стянут шпилькой до едва заметного зазора толщиной около 0.1 мм
_________________ Девице - Device
Вернуться наверх
Реклама
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Подробнее>>
maxlab
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Ср май 27, 2020 11:13:39
Потрогал лапой паяльник
Карма: 7
Рейтинг сообщений: 26
Зарегистрирован: Вт апр 23, 2013 22:21:18Сообщений: 377Откуда: KUBAN, Krasnodar
Рейтинг сообщения: 0
_________________ Девице - Device
Вернуться наверх
Реклама
Реклама
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Подробнее>>
maxlab
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Чт май 28, 2020 11:38:08
Потрогал лапой паяльник
Карма: 7
Рейтинг сообщений: 26
Зарегистрирован: Вт апр 23, 2013 22:21:18Сообщений: 377Откуда: KUBAN, Krasnodar
Рейтинг сообщения: 0
Добил песионера!
Скетч для заготовки
Спойлер Код:
#define M PB11 #define FLM PB8 #define CL1 PB9 #define CL2 PB10 #define D0 PB12 #define D1 PB13 #define D2 PB14 #define D3 PB15 #define pulseCL2() {digitalWrite(CL2, HIGH);digitalWrite(CL2, LOW);} //Битмап котика const char bitmap [] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x66, 0x00, 0x63, 0x1E, 0x3F, 0x01, 0xE0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x00, 0x60, 0x00, 0x66, 0x33, 0x0C, 0x03, 0x30, 0x0C, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x33, 0xC3, 0xE6, 0x3C, 0x66, 0x61, 0x8C, 0x03, 0x30, 0x18, 0x0F, 0x1F, 0x71, 0xF1, 0xE3, 0xE6, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x34, 0x66, 0x66, 0x66, 0x6C, 0x61, 0x8C, 0x01, 0xE0, 0x18, 0x19, 0x99, 0x99, 0x9A, 0x33, 0x36, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x66, 0x66, 0x66, 0x78, 0x61, 0x8C, 0x03, 0xCC, 0x18, 0x19, 0x99, 0x99, 0x98, 0x33, 0x33, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x63, 0xE6, 0x66, 0x66, 0x6C, 0x61, 0x8C, 0x06, 0x6C, 0x18, 0x19, 0x99, 0x99, 0x99, 0xF3, 0x33, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x36, 0x66, 0x66, 0x66, 0x66, 0x61, 0x8C, 0x06, 0x38, 0x18, 0x19, 0x99, 0x99, 0x9B, 0x33, 0x33, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x36, 0x66, 0x66, 0x66, 0x66, 0x33, 0x0C, 0x06, 0x38, 0x0C, 0x59, 0x99, 0x99, 0x9B, 0x33, 0x31, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x33, 0xE3, 0xE6, 0x3C, 0x63, 0x1E, 0x0C, 0x03, 0xEC, 0x07, 0x8F, 0x19, 0x99, 0xF1, 0xF3, 0x31, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFC, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xC0, 0x07, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xE0, 0x01, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xC0, 0x01, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFE, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFE, 0x00, 0x03, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFC, 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xFC, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xFF, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xF8, 0x00, 0x07, 0xFF, 0xFF, 0xC0, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x0F, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x1F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x00, 0x07, 0xFF, 0xFF, 0xFC, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x80, 0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x0F, 0xFF, 0xE0, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; void setup() { pinMode(M, OUTPUT_OPEN_DRAIN); pinMode(FLM, OUTPUT_OPEN_DRAIN); pinMode(CL1, OUTPUT_OPEN_DRAIN); pinMode(CL2, OUTPUT_OPEN_DRAIN); pinMode(D0, OUTPUT_OPEN_DRAIN); pinMode(D1, OUTPUT_OPEN_DRAIN); pinMode(D2, OUTPUT_OPEN_DRAIN); pinMode(D3, OUTPUT_OPEN_DRAIN); digitalWrite(FLM, LOW); digitalWrite(CL1, LOW); digitalWrite(CL2, LOW); digitalWrite(M, LOW); digitalWrite(D0, LOW); digitalWrite(D1, LOW); digitalWrite(D2, LOW); digitalWrite(D3, LOW); } void loop(){ int x, y; digitalWrite(CL1, HIGH); digitalWrite(FLM, HIGH); for(y = 0; y < 160; ++y) { for (x = 0; x < 60; x++) { if (x%2) GPIOB_BASE->ODR = GPIOB_BASE->ODR & 0x0FFF | (bitmap[y * 30 + x/2] & 0x0F) << 12; else GPIOB_BASE->ODR = GPIOB_BASE->ODR & 0x0FFF | (bitmap[y * 30 + x/2] &0xF0) << 8; pulseCL2(); if(x == 59) { digitalWrite(CL1, HIGH); } } digitalWrite(CL1, LOW); if(y == 0) digitalWrite(FLM, LOW); } digitalWrite(M, !digitalRead(M)); }
Для платы STM32F103C8T6. Arduino IDE
_________________ Девице - Device
Вернуться наверх
Реклама
maxlab
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Сб май 30, 2020 21:21:50
Потрогал лапой паяльник
Карма: 7
Рейтинг сообщений: 26
Зарегистрирован: Вт апр 23, 2013 22:21:18Сообщений: 377Откуда: KUBAN, Krasnodar
Рейтинг сообщения: 0
Прикрутил шрифт 8X12 и кое какие графические примитивы. Сделал обновление экрана с частотой 20 кадров в секунду через прерывание от TIM2. Экран не мерцает. Разобрался с разрешением этого старичка. Оказывается 240Х128
Спойлер Код:
#define M PB11 #define FLM PB8 #define CL1 PB9 #define CL2 PB10 #define D0 PB12 #define D1 PB13 #define D2 PB14 #define D3 PB15 #define pulseCL2() {digitalWrite(CL2, HIGH);digitalWrite(CL2, LOW);} #define ON true #define OFF false const char TEXT_8x12_1[21][12]={ 0,0,0,0,0,0,0,0,0,0,0,0, // ' ' 32 0,24,60,60,60,24,24,0,24,24,0,0, // '!' 33 54,54,54,20,0,0,0,0,0,0,0,0, // '"' 34 0,108,108,108,254,108,108,254,108,108,0,0, // '#' 35 24,24,124,198,192,120,60,6,198,124,24,24, // '$' 36 0,0,0,98,102,12,24,48,102,198,0,0, // '%' 37 0,56,108,56,56,118,246,206,204,118,0,0, // '&' 38 12,12,12,24,0,0,0,0,0,0,0,0, // ''' 39 0,12,24,48,48,48,48,48,24,12,0,0, // '(' 40 0,48,24,12,12,12,12,12,24,48,0,0, // ')' 41 0,0,0,108,56,254,56,108,0,0,0,0, // '*' 42 0,0,0,24,24,126,24,24,0,0,0,0, // '+' 43 0,0,0,0,0,0,0,12,12,12,24,0, // ',' 44 0,0,0,0,0,254,0,0,0,0,0,0, // '-' 45 0,0,0,0,0,0,0,0,24,24,0,0, // '.' 46 0,0,2,6,12,24,48,96,192,128,0,0, // '/' 47 0,124,198,206,222,246,230,198,198,124,0,0, // '0' 48 0,24,120,24,24,24,24,24,24,126,0,0, // '1' 49 0,124,198,198,12,24,48,96,198,254,0,0, // '2' 50 0,124,198,6,6,60,6,6,198,124,0,0, // '3' 51 0,12,28,60,108,204,254,12,12,12,0,0 // '4' 52 }; const char TEXT_8x12_2[21][12]={ 0,254,192,192,192,252,6,6,198,124,0,0, // '5' 53 0,124,198,192,192,252,198,198,198,124,0,0, // '6' 54 0,254,198,12,24,48,48,48,48,48,0,0, // '7' 55 0,124,198,198,198,124,198,198,198,124,0,0, // '8' 56 0,124,198,198,198,126,6,6,198,124,0,0, // '9' 57 0,0,0,12,12,0,0,12,12,0,0,0, // ':' 58 0,0,0,12,12,0,0,12,12,12,24,0, // ';' 59 0,12,24,48,96,192,96,48,24,12,0,0, // '<' 60 0,0,0,0,254,0,254,0,0,0,0,0, // '=' 61 0,96,48,24,12,6,12,24,48,96,0,0, // '>' 62 0,124,198,198,12,24,24,0,24,24,0,0, // '?' 63 0,124,198,198,222,222,222,220,192,126,0,0, // '@' 64 0,56,108,198,198,198,254,198,198,198,0,0, // 'A' 65 0,252,102,102,102,124,102,102,102,252,0,0, // 'B' 66 0,60,102,192,192,192,192,192,102,60,0,0, // 'C' 67 0,248,108,102,102,102,102,102,108,248,0,0, // 'D' 68 0,254,102,96,96,124,96,96,102,254,0,0, // 'E' 69 0,254,102,96,96,124,96,96,96,240,0,0, // 'F' 70 0,124,198,198,192,192,206,198,198,124,0,0, // 'G' 71 0,198,198,198,198,254,198,198,198,198,0,0, // 'H' 72 0,60,24,24,24,24,24,24,24,60,0,0 // 'I' 73 }; const char TEXT_8x12_3[21][12]={ 0,60,24,24,24,24,24,216,216,112,0,0, // 'J' 74 0,198,204,216,240,240,216,204,198,198,0,0, // 'K' 75 0,240,96,96,96,96,96,98,102,254,0,0, // 'L' 76 0,198,198,238,254,214,214,214,198,198,0,0, // 'M' 77 0,198,198,230,230,246,222,206,206,198,0,0, // 'N' 78 0,124,198,198,198,198,198,198,198,124,0,0, // 'O' 79 0,252,102,102,102,124,96,96,96,240,0,0, // 'P' 80 0,124,198,198,198,198,198,198,214,124,6,0, // 'Q' 81 0,252,102,102,102,124,120,108,102,230,0,0, // 'R' 82 0,124,198,192,96,56,12,6,198,124,0,0, // 'S' 83 0,126,90,24,24,24,24,24,24,60,0,0, // 'T' 84 0,198,198,198,198,198,198,198,198,124,0,0, // 'U' 85 0,198,198,198,198,198,198,108,56,16,0,0, // 'V' 86 0,198,198,214,214,214,254,238,198,198,0,0, // 'W' 87 0,198,198,108,56,56,56,108,198,198,0,0, // 'X' 88 0,102,102,102,102,60,24,24,24,60,0,0, // 'Y' 89 0,254,198,140,24,48,96,194,198,254,0,0, // 'Z' 90 0,124,96,96,96,96,96,96,96,124,0,0, // '[' 91 0,0,128,192,96,48,24,12,6,2,0,0, // '\' 92 0,124,12,12,12,12,12,12,12,124,0,0, // ']' 93 16,56,108,198,0,0,0,0,0,0,0,0 // '^' 94 }; const char TEXT_8x12_4[21][12]={ 0,0,0,0,0,0,0,0,0,0,0,255, // '_' 95 24,24,24,12,0,0,0,0,0,0,0,0, // '`' 96 0,0,0,0,120,12,124,204,220,118,0,0, // 'a' 97 0,224,96,96,124,102,102,102,102,252,0,0, // 'b' 98 0,0,0,0,124,198,192,192,198,124,0,0, // 'c' 99 0,28,12,12,124,204,204,204,204,126,0,0, // 'd' 100 0,0,0,0,124,198,254,192,198,124,0,0, // 'e' 101 0,28,54,48,48,252,48,48,48,120,0,0, // 'f' 102 0,0,0,0,118,206,198,198,126,6,198,124, // 'g' 103 0,224,96,96,108,118,102,102,102,230,0,0, // 'h' 104 0,24,24,0,56,24,24,24,24,60,0,0, // 'i' 105 0,12,12,0,28,12,12,12,12,204,204,120, // 'j' 106 0,224,96,96,102,108,120,108,102,230,0,0, // 'k' 107 0,56,24,24,24,24,24,24,24,60,0,0, // 'l' 108 0,0,0,0,108,254,214,214,198,198,0,0, // 'm' 109 0,0,0,0,220,102,102,102,102,102,0,0, // 'n' 110 0,0,0,0,124,198,198,198,198,124,0,0, // 'o' 111 0,0,0,0,220,102,102,102,124,96,96,240, // 'p' 112 0,0,0,0,118,204,204,204,124,12,12,30, // 'q' 113 0,0,0,0,220,102,96,96,96,240,0,0, // 'r' 114 0,0,0,0,124,198,112,28,198,124,0,0 // 's' 115 }; const char TEXT_8x12_5[11][12]={ 0,48,48,48,252,48,48,48,54,28,0,0, // 't' 116 0,0,0,0,204,204,204,204,204,118,0,0, // 'u' 117 0,0,0,0,198,198,198,108,56,16,0,0, // 'v' 118 0,0,0,0,198,198,214,214,254,108,0,0, // 'w' 119 0,0,0,0,198,108,56,56,108,198,0,0, // 'x' 120 0,0,0,0,198,198,198,206,118,6,198,124, // 'y' 121 0,0,0,0,254,140,24,48,98,254,0,0, // 'z' 122 0,14,24,24,24,112,24,24,24,14,0,0, // '{' 123 0,24,24,24,24,0,24,24,24,24,0,0, // '|' 124 0,112,24,24,24,14,24,24,24,112,0,0, // '}' 125 // 0,70,169,168,72,8,9,6,0,0,0,0 // Degree C symbol (oC) 126 0,118,220,0,0,0,0,0,0,0,0,0 // '~' 126 }; byte glcd_x, glcd_y; byte glcd_size; boolean glcd_colour; volatile char vram[3840]; void setup() { pinMode(M, OUTPUT_OPEN_DRAIN); pinMode(FLM, OUTPUT_OPEN_DRAIN); pinMode(CL1, OUTPUT_OPEN_DRAIN); pinMode(CL2, OUTPUT_OPEN_DRAIN); pinMode(D0, OUTPUT_OPEN_DRAIN); pinMode(D1, OUTPUT_OPEN_DRAIN); pinMode(D2, OUTPUT_OPEN_DRAIN); pinMode(D3, OUTPUT_OPEN_DRAIN); digitalWrite(FLM, LOW); digitalWrite(CL1, LOW); digitalWrite(CL2, LOW); digitalWrite(D0, LOW); digitalWrite(D1, LOW); digitalWrite(D2, LOW); digitalWrite(D3, LOW); Timer2.pause(); Timer2.setPeriod(25000); Timer2.attachInterrupt(TIMER_UPDATE_INTERRUPT, refresh); Timer2.refresh(); Timer2.resume(); fillScreen(ON); } void loop() { glcd_text812(10,55,"ABCDEFGHIJKLMNOPRSTUVWXYZ", 1, OFF); glcd_text812(10,75,"abcdefghijklmnoprstuvwxyz", 1, OFF); glcd_text812(10,95,"1234567890", 2, OFF); } void pSet(int x, int y, boolean color) { char data = vram[x / 8 + y * 30]; if (color) bitSet(data, 7 - (x % 8)); else bitClear(data, 7 - (x % 8)); vram[x / 8 + y * 30] = data; } void fillScreen(boolean color) { for (int i = 0; i < 3840; i++) { if (color) vram[i] = 0xFF; else vram[i] = 0x00; } } void glcd_line(int x1, int y1, int x2, int y2, boolean colour) { signed int x, y, addx, addy, dx, dy; signed long P; int i; dx = abs((signed int)(x2 - x1)); dy = abs((signed int)(y2 - y1)); x = x1; y = y1; if(x1 > x2) addx = -1; else addx = 1; if(y1 > y2) addy = -1; else addy = 1; if(dx >= dy) { P = 2*dy - dx; for(i=0; i<=dx; ++i) { pSet(x, y, colour); if(P < 0) { P += 2*dy; x += addx; } else { P += 2*dy - 2*dx; x += addx; y += addy; } } } else { P = 2*dx - dy; for(i=0; i<=dy; ++i) { pSet(x, y, colour); if(P < 0) { P += 2*dx; y += addy; } else { P += 2*dx - 2*dy; x += addx; y += addy; } } } } void glcd_rect(int x1, int y1, int x2, int y2, int fill, boolean colour) { if(fill) { int y, ymax; // Find the y min and max if(y1 < y2) { y = y1; ymax = y2; } else { y = y2; ymax = y1; } for(; y<=ymax; ++y) // Draw lines to fill the rectangle glcd_line(x1, y, x2, y, colour); } else { glcd_line(x1, y1, x2, y1, colour); // Draw the 4 sides glcd_line(x1, y2, x2, y2, colour); glcd_line(x1, y1, x1, y2, colour); glcd_line(x2, y1, x2, y2, colour); } } void glcd_bar(int x1, int y1, int x2, int y2, int width, boolean colour) { signed int x, y, addx, addy, j; signed long P, dx, dy, c1, c2; int i; dx = abs((signed int)(x2 - x1)); dy = abs((signed int)(y2 - y1)); x = x1; y = y1; c1 = -dx*x1 - dy*y1; c2 = -dx*x2 - dy*y2; if(x1 > x2) { addx = -1; c1 = -dx*x2 - dy*y2; c2 = -dx*x1 - dy*y1; } else addx = 1; if(y1 > y2) { addy = -1; c1 = -dx*x2 - dy*y2; c2 = -dx*x1 - dy*y1; } else addy = 1; if(dx >= dy) { P = 2*dy - dx; for(i=0; i<=dx; ++i) { for(j=-(width/2); j<width/2+width%2; ++j) { if(dx*x+dy*(y+j)+c1 >= 0 && dx*x+dy*(y+j)+c2 <=0) pSet(x, y+j, colour); } if(P < 0) { P += 2*dy; x += addx; } else { P += 2*dy - 2*dx; x += addx; y += addy; } } } else { P = 2*dx - dy; for(i=0; i<=dy; ++i) { if(P < 0) { P += 2*dx; y += addy; } else { P += 2*dx - 2*dy; x += addx; y += addy; } for(j=-(width/2); j<width/2+width%2; ++j) { if(dx*x+dy*(y+j)+c1 >= 0 && dx*x+dy*(y+j)+c2 <=0) pSet(x+j, y, colour); } } } } void glcd_putc812(char c) { int j, k, l, m; char pixelData[12]; if(c == '\r') { glcd_x = 0; return; } if(c == '\n') { glcd_y += 12 * glcd_size; return; } if(c < '5') memcpy(pixelData, TEXT_8x12_1[c-' '], 12); else if(c < 'J') memcpy(pixelData, TEXT_8x12_2[c-'5'], 12); else if(c < '_') memcpy(pixelData, TEXT_8x12_3[c-'J'], 12); else if(c < 't') memcpy(pixelData, TEXT_8x12_4[c-'_'], 12); else if(c <= '~') memcpy(pixelData, TEXT_8x12_5[c-'t'], 12); else memcpy(pixelData, TEXT_8x12_1[0], 12); for(j=0; j<12; ++j) { for(k=0; k<8*glcd_size; ++k) { if(bitRead(pixelData[j], k)==1) { for(l=0; l<glcd_size; ++l) { for(m=0; m<glcd_size; ++m) { pSet(glcd_x+((7-k)*glcd_size)+l, glcd_y+m+j*glcd_size, glcd_colour); } } } } } glcd_x += 8 * glcd_size; } void glcd_text812(int x,int y,char* textptr, int size, boolean colour) { glcd_x=x; glcd_y=y; glcd_size=size; glcd_colour=colour; for(; *textptr != '\0'; ++textptr) glcd_putc812(*textptr); } void refresh() { int x, y; digitalWrite(CL1, HIGH); digitalWrite(FLM, HIGH); for (y = 0; y < 128; ++y) { for (x = 0; x < 60; x++) { if (x % 2) GPIOB_BASE->ODR = GPIOB_BASE->ODR & 0x0FFF | (vram[y * 30 + x / 2] & 0x0F) << 12; else GPIOB_BASE->ODR = GPIOB_BASE->ODR & 0x0FFF | (vram[y * 30 + x / 2] & 0xF0) << 8; pulseCL2(); if (x == 59) digitalWrite(CL1, HIGH); } digitalWrite(CL1, LOW); if (y == 0) digitalWrite(FLM, LOW); } digitalWrite(M, !digitalRead(M)); }
Если процедуру refresh переписать на ASM для STM32, будет лучше... Но я не силен в этих камнях
_________________ Девице - Device
Вернуться наверх
Реклама
Jack_A
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Вс май 31, 2020 12:02:57
Друг Кота
Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40Сообщений: 5598Откуда: Minsk
Рейтинг сообщения: 0
Титанический труд! За упорство - респект.
_________________
Вернуться наверх
Реклама
AAX
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Вс май 31, 2020 21:30:05
Карма: 9
Рейтинг сообщений: 155
Зарегистрирован: Сб ноя 16, 2013 23:34:34Сообщений: 671
Рейтинг сообщения: 0
Если процедуру refresh переписать на ASM для STM32, будет лучше...
Ну, начать можно, наверное, с оптимизации. Нормальный компилятор большую часть этого сделает сам, но в ардуине иде я чот ниуверен
Она avr-gcc использует?
Код:
for (y = 0; y < 128; ++y) { for (x = 0; x < 30; x++) { GPIOB_BASE->ODR = GPIOB_BASE->ODR & 0x0FFF | (vram[y * 30 + x] & 0x0F) << 12; pulseCL2(); GPIOB_BASE->ODR = GPIOB_BASE->ODR & 0x0FFF | (vram[y * 30 + x] & 0xF0) << 8; pulseCL2(); // уверен, что операции, выполняющиеся в этом цикле, можно написать красивее - лень разбираться, что тут за арифметика... } digitalWrite(CL1, HIGH); // if (x == 59) в данном случае было эквивалентно "на выходе из цикла" digitalWrite(CL1, LOW); // что ставит под сомнение целесообразность этих двух операций в принципе :) // или там контроллеру нужно дать понять таким образом, что закончилась строка? if (y == 0) digitalWrite(FLM, LOW); }
Вернуться наверх
Реклама
maxlab
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Пн июн 01, 2020 16:11:58
Потрогал лапой паяльник
Карма: 7
Рейтинг сообщений: 26
Зарегистрирован: Вт апр 23, 2013 22:21:18Сообщений: 377Откуда: KUBAN, Krasnodar
Рейтинг сообщения: 0
AAX , Приветствую! Использует arm-none-eabi-gcc\\4.8.3-2014q1.
Я пробовал в лобовую сканировать координату X от 0 до 59, и после каждой тетрады pulseCL2(). Экран жутко мерцать начинал.
Такая организация кода дала приемлемый результат. Ниже актуальная процедура обновления экрана.
Код:
void refresh() { int x, y; digitalWrite(CL1, HIGH); digitalWrite(FLM, HIGH); for (y = 0; y < 128; ++y) { for (x = 0; x < 60; x++) { if (x % 2) GPIOB_BASE->ODR = GPIOB_BASE->ODR & 0x0FFF | (vram[y * 30 + x / 2] & 0x0F) << 12; else GPIOB_BASE->ODR = GPIOB_BASE->ODR & 0x0FFF | (vram[y * 30 + x / 2] & 0xF0) << 8; pulseCL2(); if (x == 59) digitalWrite(CL1, HIGH); } digitalWrite(CL1, LOW); if (y == 0) digitalWrite(FLM, LOW); } digitalWrite(M, !digitalRead(M)); }
PS0. Но лучше контроллер на SED1330F спаять. 72 Мгц тактовой не достаточно для такой работы
http://www.mdejong.de/lcd%20platine/Dow ... roller.pdf PS1. Еще одно место напрашивается на оптимизацию - процедура pSet(int x,int y,bool color). Сделать манипуляцию с видео памятью через указатели.
Код:
void pSet(int x, int y, boolean color) { char data = vram[x / 8 + y * 30]; if (color) bitSet(data, 7 - (x % 8)); else bitClear(data, 7 - (x % 8)); vram[x / 8 + y * 30] = data; }
_________________ Девице - Device
Вернуться наверх
AAX
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Пн июн 01, 2020 19:23:04
Карма: 9
Рейтинг сообщений: 155
Зарегистрирован: Сб ноя 16, 2013 23:34:34Сообщений: 671
Рейтинг сообщения: 0
Добрый день!
я про то, что цикл по x до 60-ти с проверкой на каждой итерации остатка от деления x на два, потом ещё с одним делением x на два - не нужен
можно обойтись циклом, примерно как я написал, который будет делать две записи в память дисплея за один проход.
проверка x==59 избыточна, достаточно написать эту строку за скобкой цикла. Конечно, можно оптимизировать арифметику, которая в цикле у Вас творится - тут мне, честно, лень разбираться
Вернуться наверх
maxlab
Заголовок сообщения: Re: LCD 240X160 на чипсете HD66204/HD66205
Добавлено: Пн июн 01, 2020 19:27:58
Потрогал лапой паяльник
Карма: 7
Рейтинг сообщений: 26
Зарегистрирован: Вт апр 23, 2013 22:21:18Сообщений: 377Откуда: KUBAN, Krasnodar
Рейтинг сообщения: 0
AAX , спасибо. Я понял
_________________ Девице - Device
Вернуться наверх
Страница 1 из 1
[ Сообщений: 12 ]
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения