Библиотека для графического LCD от Nokia 1110 c поддержкой различных шрифтов

В целях изучения контроллеров STM32 написал графическую библиотеку для работы дисплея от Nokia 1110. Библиотека с примером написаны под CoIDE. Целевой контроллер — STM32F100RB, который стоит на Дискавери.

Библиотека может:
  1. Работать с дисплеем в простом текстовом режиме без видеопамяти (шрифт 5х8);
  2. Рисовать точку, линию, прямоугольник, окружность, залитый прямоугольник. Все с любой последовательностью координат точек начала и конца;
  3. Работать в текстовом режиме через графическую память и выводить любой заданный шрифт.


Основная фича этой библиотеки в том, что для задания нужного шрифта достаточно передать в функцию вывода текста указатель на структуру описанного шрифта:
typedef struct
{
	uint16_t font_height;
	unsigned char start_char;
	unsigned char end_char;
	const font_descriptor_t* descr_array;
	const unsigned char* font_bitmap_array;
} font_info_t;

Сами шрифты генерируются программой The Dot Factory авторства Eran Duchan'а: Ссылка. Причем генерируются они на основе встроенных в систему шрифтов. Таким образом можно получить любой шрифт для своего проекта с использованием графического дисплея. Также не обязательно иметь в «зашитом» шрифте все символы, — достаточно только тех, которые будете использовать, что позволяет значительно экономить память. Например для основного отображения можно иметь полноценный шрифт, а для отображения цифровых данных в большом формате только шрифт с цифрами и точками. Для корректной работы данной библиотеки настройки программы должны быть следующими:
Настройки программы
В прикрепленных файлах есть архив с программой и сохраненной конфигурацией. Надо только задать набор нужных нам символов и выбрать шрифт. Еще можно поиграть с параметрами Hight(Y) в блоке Padding Removal (Шрифты выводятся как есть сверху донизу и слева на право), параметр Width(X) нужно оставить Tighest. Дальше жмем «сгенерировать» и копируем исходник в отдельный хидер с названием шрифта, например.
Потом подключаем хидер и с помощью функции
extern gr_error_t vram_put_str (point_t p, const font_info_t * font, const char* str, point_mode_t mode);

выводим нужную нам информацию на дисплей.
Схема подключения дисплея (такая же как и для Nokia 1110i, за исключением того, что анод подсветки (6 вывод) нужно подключать не к 3.3В а к 5В так как иначе диоды совсем не загораются):
Схема

Ну и напоследок результат работы:
Общий вид

Дисплей

Библиотека в принципе подходит для весьма популярного дисплея от Nokia 3310 — нужно только подправить пару макроопределений и переписать функцию передачи данных в дисплей.

Из минусов библиотеки следует отметить медленную передачу данных на дисплей (примерно 100 кГц частота линии SCK), так как SPI интерфейс дисплея нестандартный — 9 битный и требует софтварной реализации. Установки битов в портах в процедуре вывода данных на дисплей реализованы через функции из библиотеки от ST, и ее следует переписать под прямую работу с регистрами.
Файлы в топике: Source.zip, TheDotFactory.zip

Комментарии (138)

RSS свернуть / развернуть
Вот чем хороши LPC, так это возможностью изменять размер фрейма данных в произвольных пределах. Ну а за статью и библиотеку спасибо!
+1
М0 у стм32 научились также размеру фрейма от 4 до 16 бит, вроде.
0
Прикольно! А попробовать использовать УАРТ для вывода данных не хотите? Он аппаратный, и как раз 9 бит. <skj бы интересно узнать, как при этом изменится скорость работы.
0
<skj = Было (опечатка + пунто «ыцшесрук» =)
0
Если бы не обратный порядок бит, то былобы крутяк, а выворачивать на изнанку константы, байты, шрифты алгоритм… нах-нах… Да и так наглядней. С ходу перекидывается на другие камни с аппаратным спи в 9 бит. Да и на просто другие камни переносить проще
0
В заголовок исходника #include <core_cm3.h>
Перед засовыванием данных в уарт, вызов __RBIT(value);
Профит!
2 лишних строки в исходники и никакого нах-нах)))
0
RBIT
Reverse the bit order in a 32-bit word. Не? У нас 9 бит данных, а эта инструкция сделает из
0b0000 0000 0000 0000 0000 0001 1001 1111
0b1111 1001 1000 0000 0000 0001 0000 0000

Тут еще и сдвиг над добавить. Серавно дохрена посторонних операция. Мое ИМХО
0
сдвиг на константу это 1 команда. такнов не помню сколько, но не много вроде.
0
Нинай как тут, а у ARM7 сдвиг вообще был аттрибутом команды и вполне мог быть бесплатным, если следущая команда позволяла указать сдвиг для аргумента.
0
Это 1 такт всего навсего. И rbit 1 такт. Получаем, о ужас (!!!) 2 лишних такта на вывод каждого байта на дисплей.
0
присоединяюсь. УЖОС! :)
0
Кстати, раз уж спор зашел о скорости передачи. Максимально доступный бодрейт усарта равен системной частоте, деленной на 8. С учетом старт и строп битов нужно передать 11 бод, т.е. затратить 88 тактов.
У железного spi максимальная скорость всего 2 раза ниже сист. частоты.
Можно выводить 1 бит программно (ну пусть тактов 10 уйдет), а остальные 8 бит через железный spi (плюс 16 тактов). Получится значительное превосходство по скорости по сравнению с усартом. А чисто программный ногодрыг вообще отдыхает.
0
один софт 8 хардварь не по феншую. На сколько я помню при настройке spi вывод отдается в единоличное владение хардваре, и уже пофигу что мы туда пишем. Т.е. надо отключать спи, ногодрыгать и снова включать хардварь. Так делать конечно можно, но это до ужаса не красиво.
0
Ну не более некрасиво, чем тупо ногодрыгать :))) Да, вывод порабощается железом, нужно перенастраивать. Но и при использовании усарта перед каждый байтом нужна подготовка (rbit со сдвигом), и например гнать данные потоком через DMA не получится. А если и так, и так к каждому байту готовиться, то можно и с spi заморочиться ради повышения скорости.
0
и например гнать данные потоком через DMA не получится
Почему? Подготовил rbit'ом весь буфер и отдал DMA.
0
Можно и так, но это уже даже мне кажется извращением )))
0
Это как раз таки меньшее извращение. и перепаковка в буффер из 9битных посылок в 8/16 битные и засылка в дма, тоже выглядит лучше.
0
В упор не вижу извращения.
0
ну софт+хард это как и «ни рыба ни мясо». Хотя с другой стороны получаем алгоритм работы как с дисплеем 8битным с отдельным выводом д/ц. Что-то в этом есть.
0
Убейся об свой бред, неграмотный… )))))))
Ничего там не надо отключать… всё там чудесно получается…
Вместо того, чтобы срать в ветках, мудило, лучше бы учил матьчасть… ))))))))
Даже если дрыгнуть одной ногой перед спаем, то получаем 68-70% от максимального…
Купи букварь, лапоть… ))))))))))))))))
-1
матьчасть… пиздец.
+1
кавычки не поставил… )))))))))
-3
Убейся об свой бред, неграмотный… )))))))
Я бы с интересом понаблюдал за тем, как вы воплощаете этот свой совет в жизнь.
+2
Вместо того чтобы звездеть что попадя… скажи что по делу… ))))))))
Нечего????))))))
Ныряй в своё хлорное железо… водолаз… нах… ))))))))))
-4
Вместо того чтобы звездеть что попадя… скажи что по делу… ))))))))
Сразу после вас. Впрочем, в прошлый раз я так и не дождался от вас ничего по делу.

водолаз… нах… ))))))))))
Ну где именно вы там водолазите это уже ваши личные проблемы.
0
Не… мля… ващще не в теме… а звездят, как троцкие… ))))))))))
Это и все ваши «заслуги»??? ))))))))))))
-4
Не… мля… ващще не в теме… а звездят, как троцкие… ))))))))))
Это и все ваши «заслуги»??? ))))))))))))
Ну что вы. На фоне ваших «заслуг» меркнут любые другие.
+1
Это и всё, что ТЫ смог высрать… засранец??? )))))))))))
-3
Это и всё, что ТЫ смог
Нет, конечно. Но вам и этого хватило, что бы изойти.
высрать… засранец??? )))))))))))
Как по мне, то знаки вопроса тут лишние, в том, что вы именно такой врядли могут возникнуть сомнения.
0
Откуда у тебя сомнения… у тебя ж мозгов нет… )))))))))))))
Тупо… есть… лутить… травить… ))))))))))))
-3
Откуда у тебя сомнения… у тебя ж мозгов нет… )))))))))))))
Ну не всем же так сильно не повезло в жизни как вам.
Тупо… есть… лутить… травить… ))))))))))))
Ну на вашем уровне интеллектуального развития, вероятно, все именно в такой последовательности и происходит. К счастью в перечне отсутствует «размножаться», так что есть надежда, что такие как вы когда-нибудь вымрут.
0
Да… жалко… что твоя мать аборт не сделала… ))))))))
И накуя таких дебилов как ты рожают!!! ))))))))))))))))
-3
Да… жалко… что твоя мать аборт не сделала… ))))))))
Моя мать не врач, так что она бы и не взялась делать аборт вашей матери. Хотя я и склонен думать, что окружающим эта процедура пошла бы на пользу.
И накуя таких дебилов как ты рожают!!! ))))))))))))))))
«Накуя» рождают только таких как вы. Остальных людей рожают, как принято говорить, «на свет».
0
Та тебя раз десять, видать уронили, пока ТЫ «свет увидел»… )))))))))))))))))))))
0
Надо полагать, что тема spi теперь тоже раскрыта не меньше темы антиалиасинга :D
+1
Естественно. Последние посты химеры как раз об одном таком serial peripheral интерфейсе и о подробностях его работы.
+4
evsi, жжошь! :DD Жаль рейтинга не хватает, плюсанул бы )))
+2
С такими долбоёбами, как это стадо баранов, вы спай и к старости не одолеете… ))))))
-3
Ну так давай… блесни остатками знания и остатками ума… )))))))
Расскажи… что будет, если во время передачи дезактивировать спай??? )))))
Или… что будет, если во время передачи отключить тактирование??? )))))))))
Или… можно ли «на ходу» преключать битность передачи??? ))))))))
Давай… недалёкий… напрягись… но не усрись!!! )))))))))))
-2
Ну так давай… блесни остатками знания и остатками ума… )))))))
Да что-то как я ни натираю ваши остатки, не блестят они нифига.
Давай… недалёкий… напрягись… но не усрись!!! )))))))))))
Правильно, поддерживайте сами себя, а то неровен час ваше ЧСВ опухнет и воспалится.

P.S. Полагаю вы будете сильно удивлены, если узнаете, что можно на ходу переключать ногу из режима GPIO в альтернативную функцию и обратно, не останавливая SPI, естественно.
0
Это и все ваши знания??? ))))))))))
Незачот!!! ))))))))))))
Следи за темой… ))))))
-3
Это и все ваши знания??? ))))))))))
Нет, конечно.
Незачот!!! ))))))))))))
Никак с зачеткой расстаться не можете?
0
Давайте-дакайте… ибланы-кармодрочеры… ))))))))
Топите ресурс в гавне нах… )))))))))
Зашибись вы дебилы!!! Респект!!! )))))))))))))))
-2
Короче, тролль, съеби отсюда. Утомил ты меня.
+2
Пойди и повесься!!! ))))))))))))))
-2
Хороший совет. Вам бы ему последовать…
0
Твое перекидывание какашками с HHIMERA на редкость однообразно и уже надоело. Прекрати, плиз.
+3
Прекратил.
0
Переходи улицу на красный свет… Он тебя явно манит… ))))))))))))
-1
Да как сказать. Я, по крайней мере, какашками кидался по теме антиалиасинга, а не какашек.
0
Здешнее стадо баранов-кармодрочеров не в состоянии переварить SPI STM32… )))))))))))))
Вот им только и осталось… жрать траву и метать какашки… ))))))))))
-1
Если ты в состоянии — напиши статью. Если нет, или того хуже, не хочешь — отношение к тебе будет соответственное.
+1
Василий… хочешь поговорить без «хи-хи»??? Пожалуйста!!!
Писать статью я не буду… не могу… не хочу… (нужное подчеркнуть)…
Подсказать — пожалуйста…
И что значит «отношение к тебе будет соответственное»???
Я независимый и самодостаточный… Мне не нужны подсказки, чьи-то статьи или исходники…
Попросишь ДиХальта чтобы он убрал меня отсюда??? Да ради Бога!!!
А мнение дебил-баранов-кармодрочеров, как и ихнее отношение ко мне… да крутил я их… на одном пальце…
Они меня только веселят… своею дебильно-дауновской наивностью и пафосностью колхозной школоты…
Пусть сначала сено со своих зубов повыковыривают…
0
А мнение дебил-баранов-кармодрочеров, как и ихнее отношение ко мне… да крутил я их… на одном пальце…
Если бы вас дествительно не интересовало чужое мнение, вы бы сюда не писали. А по факту вы всеми своими постами демонстрируете, что вам нужно внимание и популярность. Какого рода внимание и популярность — вам, скорее всего, действительно все равно, лишь бы побольше. Выяснять мотивы вашего поведения мне не интересно. Ожидать, что от вас полезной информации тоже как-то не приходится. Пожалуй, самое рациональное поведение по отношению к вам — полный игнор, даже если вы вдруг станете писать что-то типа осмысленное. В этом случае нынешнее поведение перестанет давать столь необходимое вам внимание и вы будете вынуждены его изменить. Пойдете ли вы к врачу или попробуете загнать проблему поглубже найдя себе источник внимания на другом ресурсе — мне все равно. И в том и в другом случае вы писать сюда перестанете.
+2
«Пацан сказал…
Прекратил.
… пацан НЕ сделал!» ))))))))))))))))))))
Ну ладно… анжелочка заистерила, что его начали тыкать носом в его ламерский бред…
Ну а тебя чего подмывало языком почесать, если напрочь не владеешь темой??? )))))))))))))
А по поводу…
вы писать сюда перестанете.
… не тебе решать…
0
«Пацан сказал…
Прекратил.
… пацан НЕ сделал!» ))))))))))))))))))))
Я обещал прекратить возвращать вам ваши какашки и, как не сложно заметить, сделал это.
А по поводу…
вы писать сюда перестанете.
… не тебе решать…
Я и не решал, как не сложно заметить, а всего лишь описал последствия. Слишком много я видел таких как вы, что бы не знать, чем это закончится.

Этот ответ вам будет последним, с этого момента вы для меня не существуете.
0
Я просто рад… безмерно!!! ))))))))))
0
так как SPI интерфейс дисплея нестандартный — 9 битный и требует софтварной реализации
Да, как уже было сказано, 9-битный UART с выводом тактирования наружу отлично справится. Если хотите, могу скинуть куда-нибудь свою реализацию.



(это я для коммента на Хабре картиночку когда-то делал) :)
0
хотим
0
Вот:
narod.ru/disk/51898488001.7117b6f21d4a36ed89cdd0508cbd3270/lcd1100_romanshuvalov.tar.html

Здесь есть много лишнего, много плохого (ChipSelect дёргается после каждой пересылки, может так не надо?) и вообще код не доработанный, одна из первых рабочих версий, заброшенных давно. Часть кода с таблицей символов и последовательностью команд скопипащена из разных мест; остальная часть — собственно, LCD_Init() и LCD_SendByte() — написана мною. В этих двух функциях всё основное, связанное с USART'ом. Остальное можно и не читать.

О том, куда что подключать — см. main.c, там в LCD_InitStructure всё написано. Ну или распознайте на фотографии :)
0
Из минусов библиотеки следует отметить медленную передачу данных на дисплей (примерно 100 кГц частота линии SCK), так как SPI интерфейс дисплея нестандартный — 9 битный и требует софтварной реализации.
Еще вариант использовать 8/6 битный хардверный SPI, с перепаковкой на лету данных из 9 бит. Для «добивания места» использовать команду nop дисплея. Перепаковка попросит ресурсов, но всё равно должно быть быстрее ногодрыга через стандартную библотеку.
0
Что значит быстрее??? По полной скорости… безобрывно… как положено… )))))
И одна ячейка памяти… это, увы, не «попросит ресурсов»… )))))

Для «добивания места» использовать команду nop дисплея.
Потеря времени…
Можно ничего и не добивать… ;)
0
>>Можно ничего и не добивать
А не будет ли дисплей потом воспринимать первые несколько бит следующей посылки данных как последние несколько бит в последнем байте предыдущей.
0
По моему USART 9 битный с тактированием — лучшая альтернатива. Как то о нем даже и не думал.
0
Библиотека с примером написаны под CoIDE
… а в чем зависимость от CoIDE?
0
Файлы проекта от coide, вот и вся зависимость. В сорцах компиляторо-зависимого кода я не заметил.
0
А где антиалайзинг и генерация глифов? ;-))))))
0
Реквестирую пример антиалиасинга монохромного изображения
0
ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BD%D0%BE%D1%85%D1%80%D0%BE%D0%BC%D0%BD%D0%BE%D0%B5_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
Вы, наверено, имели в виду бинарное? ;-) Для него тоже можно. Например быстреньким миганием точки. ;-)
0
Может быть, по каким-то там правилам и не правильно называть «бинарное» монохромным, вот только в реальной жизни все говорят «монохромное», а «бинарное» я первый раз вижу)))
0
У нас оно обычно называется «Ч/Б» (но под Ч/Б часто и grayscale понимается, т.е. монохромное) или «двухцветное».
У буржуев чуть лучше, под B&W у них понимается исключительно двухцветное.
Для него тоже можно. Например быстреньким миганием точки. ;-)
На ЖК-то, с откликом в сотни мс?
К ЧБ вместо антиалиасинга применяется дизеринг, но это применимо только для отображения исходно монохромных (grayscale) или полноцветных изображений.
0
На ЖК-то, с откликом в сотни мс?
Та ладно… не мешай… ))))
А вдруг у них получится??? ))))))))))))
0
зря стебётесь. именно миганием, именно на тормозных жк некоторая грейскаля получается. В основном случайно, побочным эффектом, но и спецом мона забодяжить попробывать :)
0
Попытки знаю… результаты тоже… отсюда и стёб… ))))))
0
Над собой? Это правильно.
0
Энжел… тебя дисплей укусил??? )))))))))))))))))
0
ага, 5 раз. пока в стадии альфатестирования нахожусь.
0
Дайзеринг, мдя? RTFM алгоритм Брезенхема. ;-) Изначально grayscale, мдя? Буковки же в формате TrueType и виндовый растр изначально то BW. И к ним применяется антиалисинг (мало того, таже винда, поддерживает аж два их варианта, которые можно переключать). А еще, по большому секрету, скажу что бывают хитрые CPU в которых существуют хитрые слоистые видео буферы. И может быть BW 1-битный буфер с буковками, на который накладыватся 8-ми битный альфа-маск, а под ними что-нибыть в YUV422… Например в Драйм III который гнусмас ставит в фотомыльницы;-))
-1
Я знаю что такое антиалиасинг и как он применяется к шрифтам. Вот только как ты себе представляешь АА на двухцветном дисплее?
Буковки же в формате TrueType и виндовый растр изначально то BW
Вот потому на B&W дисплее оно и отображается как есть, без фокусов вроде антиалиасинга.
0
По большому секрету расскажу, что вы используете технологию ClearType для преобразования шрифов с помощью утилиты указанной в вашем посте. А он, опаньки, проприетарный. Ик? ;-) А антиаласинг — это не фокус. Это — сглаживание! Трололошеньки! ;-)
-3
Начнем с того, что пост не мой. Это раз.
Два — ClearType не работает на двухцветных картинках. Да и на монохромных, ЕМНИП, тоже, т.к. это технология субпиксельного сглаживания.
А он, опаньки, проприетарный.
И что, кстати? Проприетарна технология рендеринга сглаженного шрифта, а не результат (хотя бы потому, что CT нужно настраивать под каждый конкретный дисплей). Впрочем, как я уже говорил, при рендеринге в однобитный битмап оно не работает.
А антиаласинг — это не фокус. Это — сглаживание!
Ну уж если ты фигуры речи не понимаешь, то с тобой вообще не о чем разговаривать.
0
Трололо! А преобразование векторнорного шрифта в растр, это у нас чтой-то? Как бы и не сглаживание! (BTW, открой мне секрет, где ты нашел фокус?)
А пока я тебе открою секрет, что Clear Type не нужно настраивать под каждый, конкретный дисплюй. Для него значимо только то сикока пукселей занимает символ. А еще вспомни о глифах!
-4
А преобразование векторнорного шрифта в растр, это у нас чтой-то?
Рендеринг это называется. Либо растеризация. Сглаживание же — одна из технологий для улучшения качества рендеринга за счет задействования вохможности дисплея отображать полутона (обычный АА) и за счет того факта, что пиксель состоит из трех отдельных субпикселей (субпиксельный АА).
Но ведь ты же тролль, поэтому все эти тонкости тебя не интересуют, правда?) Лишь бы потрололокать. Необоснованно, хехе.
А пока я тебе открою секрет, что Clear Type не нужно настраивать под каждый, конкретный дисплюй.
Секрет как раз в том, что CT настраивается под каждый конкретный дисплей. В первую очередь — под порядок субпикселей. Во вторую — под их геометрию и субъективные пожелания юзера. Правда, подстройка CT почему-то спрятана, так что знают об этом не все.
А еще вспомни о глифах!
Сперва напомни, что именно ты понимаешь под этим названием.
+1
А чем же у нас редерниг от растеризации отличается? (нпр. алгоритм Брезенхема)

Каких таких субпикселей?

А глиф, дядьку, это когда (в некоторых алфавитах), в слове два соседних символа (имеющих разное начертание) передаются третьим.
0
А чем же у нас редерниг от растеризации отличается?
Здесь — ничем. В 3D — растеризация это часть рендеринга, после T&L (или, точнее, вертексной/геометрической обработки).
Каких таких субпикселей?
Разных — синих, красных, зеленых…
А глиф, дядьку, это когда (в некоторых алфавитах), в слове два соседних символа (имеющих разное начертание) передаются третьим.
А, это… Ну это отдельная веселуха, она даже к собственно растеризации относится довольно опосредованно — по сути, обрабатывается до нее, в растеризатору без разницы, какой символ рисовать.
0
Ой не скажи про глифы! Это ситуация как у нас окончаниями для числительных. «Полтора землекоп копат ям за ИК минут». А исЧо есть такая штука, что шрифты то копирайченые… Трололосиньки!
Но то все фигня. Меня сейчас больше интересует как корректно связать с beagleboard по i2c контроллер питания, гироскоп и компас. Плюс вывести на PIC16F877A SPI с отдельным питанием. Плюс USB хаб с контроллером питания, так что бы можно было каждый канал отключить… А там исЧо распознование образов, на том же OMAP… Но, благо, последнее у меня самое простое.
-4
Ой не скажи про глифы! Это ситуация как у нас окончаниями для числительных. «Полтора землекоп копат ям за ИК минут». А исЧо есть такая штука, что шрифты то копирайченые… Трололосиньки!
Несвязный бред, да еще и не по теме. Не впервые, впрочем. Остальное — обычный оффтоп.
0
БТВ. Трололо рулит! ;-)
-3
Химера, твой корефан пришел, подите подрочите друг-другу со скуки.
+2
Деффочка Анжела… ты сайт не перепутала??? ))))))))))))))
А зеркальце с дисплеем??? Не??? ))))))))))
-4
уссался с коммента!
0
раскрыть комментарий
-5
Я вроде уже писал, в каком направлении тебе следует отправиться?
0
Да кто ты такой, обоссаный мальчишка??? )))))))
Меняй свои памперсы!!! )))))))))))))
-4
успокойся уеба, я пока на обед схожу.
0
Пойди… повой… с голодухи… в брянских лесах… )))))))))))))))
-4
ололо
0
Чё… брянское школоло??? ))))))))))
-4
Вас уже не раз пытались лечить, да все бесполезно.
0
О...))))
Ещё один придурок-ламер с гонором нарисовался… ))))))
Иди топись в хлорном железе… неудачник!!! )))))))))))
-4
толстый толстый толстый тролль! Как это мило!
0
Лучше быть троллем… чем таким недоношенным дебилом как ТЫ… ))))))))))))))))
-4
ёбан, я же просил успокоится, выпей пустырнику бля, да съешь еще этих французских булок, а то похудеешь.
0
Вы чё… недоношенные… гавна объелись??? )))))))))
Писец… стадо недотраханных баранов!!! )))))))))
Правильно сделал ДиХальт, что на этот заповедник «Тупок и Глупок» рекламу повесил… )))))))
Типа… с паршивого стада хоть шерсти клок… )))))))
Один пишет с ошибками, читает с ошибками и думает с ошибками… Прям ангел-блондинко… )))))))
Другой химикаты путает… менделеев хренов… )))))))
Третий с брянского леса вылез… Зато знает куда идти… )))))))))))
-2
Однако сколь многозначительный и самокритичный пост. Одних только ошибок не счесть. Пожалуй плюсану.
+1
хуй ему а не плюс.
0
А тебе ДВА… чтобы работала голова… )))))))))))
-3
Евгений Ваганыч, вы?
+1
Врядли, но на его лавры явно претендует.
0
Ну вам и два не помогло…
0
Хмм. У вас даже не раздвоение, а растроение личности.
0
Не надо путать троллей с бакланами, химера как раз типичный представитель этого вида.
+1
Киевский пидарок открыл роток??? ))))))))))))))))
-3
А вы его разве закрывали?
0
У тебя что рот, что жопа… никогда не закрываются… )))))))
-3
Вы искренне полагаете, что у всех такие же проблемы как у вас?
0
Природа она всюду, как бы мы не окружали чебя железобитонными джунглями, нам от неё не дется. :)
+1
Не надо свою природную неграмотность превозносить как достоинство… )))))))))))))))
-3
Если бы вы хоть изредка сами руководствовались этим правилом, вы бы значительно больше напоминали нормального человека…
0
Ещё один придурок-ламер с гонором нарисовался… ))))))
Вы не еще один, вы все тот же.
Иди топись в хлорном железе… неудачник!!! )))))))))))
Вы традиционно отдаете команды сами себе?
0
Ты какие химикаты нюхал??? )))))))))))
-3
Никакие, а что? Хотите поделиться опытом употребления?
0
Это не лечится :)
+1
Теперь-то тема антиалиасинга полностью раскрыта)))
+2
HHIMERA заслуживает пожизненного изгнания с данного ресурса
0
а смысл? прийдет под другим ником, с прокси. Лето, каникулы, изгоняй не изгоняй, гармоны прут, а девать их не куда. Так хоть извесно кто и где срёт.
0
анжЭЛОЧКА-ЛЮДОЕДКА… срёшь здесь только ТЫ… и некоторые вместе с тобой… ))))))))))
-2
Скажи хоть что-то толковое, а не хи-хи, да ха-ха)))))
+1
Не ведитесь на провокации. Его слова тут ни чего не значат. Пусть развлекается сам с собой, как и в жизни. Подрочит и надоест.
0
А может ТЫ мне подрочишь… мокрощелка??? )))))))))))))
-2
Да тут уже всё сказали…
Можно дрыгнуть ногой, а потом SPI…
Можно перепаковывать на лету…
Неполная посылка 9-ти бит, если дёрнуть CS, игнорируется дисплеем…
Всё просто… Пробуйте и решайте, что вам больше по душе…
+1
Нашел у себя в коде:
u16 data_inv = (u16) ((__RBIT((u32)(data) )) >> 23);

Это изменение порядка бит. Что за __RBIT не знаю, наверное, копипастил из интернетов.

Ссылку на весь код с управлением через UART я привёл выше, под фотографией.
0
Видимо, встроенная функция, транслирующаяся в одноименную инструкцию ARM'а. А она, в свою очередь, переворачивает слово (слово, в понимании ARM — это 32 бита, ЕМНИП).
0
Судя по сдвигу на 23 бита вправо — да, 32 :)
0
__RBIT легко ГУГЛИТЬСЯ, зачем строить догадки? Да и выше в коментам расписан данный вариант, потом горяче обсужден! Внимательнее надобно быть, Товарищи!)
0
А в файлы CMSIS вера не позволяет заглянуть??? )))
Там много чего ещё есть… )))))))))
0
Скажите, а где вы берете разъемы для подключения этого дисплея?
0
А, все, сам нашел откуда выпаять.
shop.siriust.ru/product_info.php/products_id/14330
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.