Привет уважаемым мудрым котам. Ковыряю библиотеку для LPH9157-2. Прошу помощи разобраться в принципе работы функции. Судя по тому, что маска сдвигается влево, шлём сначала младший бит? Или я не так понимаю? Так надо или всёже надо со старшего? В таблице баиты (напр. для символа "А") такие: 0x7E, 0x11, 0x11, 0x11, 0x7E Я ещё ничего в железе не делал, только разбираюсь. Запутался в конец. Спойлер//========= // Функция прорисовки символа на дисплее без цвета фона //========= void Send_Symbol_Shadow (unsigned char symbol, char x, char y, int t_color, char zoom_width, char zoom_height) { unsigned char temp_symbol, a, b, zw, zh, mask; char m, n; m=x; n=y; if (symbol>127) symbol-=64; //Убираем отсутствующую часть таблицы ASCII for ( a = 0; a < 5; a++) //Перебираю 5 байт, составляющих символ { temp_symbol = font_5x8[symbol-32][a]; zw = 0; while(zw != zoom_width) //Вывод байта выполняется zw раз { switch(rot) { case 0: case 180: n=y; break; case 90: case 270: m=x; break; } mask=0x01; for ( b = 0; b < 8; b++ ) //Цикл перебирания 8 бит байта { zh = 0; //в zoom_height раз увеличится высота символа while(zh != zoom_height) //Вывод пикселя выполняется z раз { switch(rot) { case 0: case 180: if (temp_symbol&mask) { Put_Pixel (m+zw, n+zh, t_color); } break; case 90: case 270: if (temp_symbol&mask) { Put_Pixel (m+zh, n+zw, t_color); } break; //Получить адрес начального пикселя по оси y для вывода очередного байта } zh++; } mask<<=1; //Смещаю содержимое mask на 1 бит влево; switch(rot) { case 0: case 180: n=n+zoom_height; break; case 90: case 270: m=m+zoom_height; break; } } zw++; } switch(rot) { case 0: case 180: m=m+zoom_width; break; case 90: case 270: n=n+zoom_width; break; } } }
_________________ Я всё-всё узнAю и стану профессором.
Да, ты прав, вначале младший бит, потому что вначале mask = 0x01. Потом маска сдвигается влево и передаётся второй бит и т.д.
Ну столько-то я понимаю, хоть и полный профан в С. Я не понял, так и должно быть?. И ещё. Зачем во всех циклах проверяется угол поворота экрана? Если проверку вынести в самое начало функции и установить ФЛАГ в зависимости от поворота (ещё 1 переменная) и потом вместо проверки на поворот просто AND ФЛАГ,- не будет ли быстрее работать? Вообще-то перекраиваю под ассемблер... (Профан же )
_________________ Я всё-всё узнAю и стану профессором.
Заголовок сообщения: Re: Дисплеи от мобильных телефонов- осцилограммы работы
Добавлено: Ср апр 20, 2016 10:52:00
Опытный кот
Карма: 16
Рейтинг сообщений: 166
Зарегистрирован: Вс дек 02, 2012 16:58:33 Сообщений: 826 Откуда: Уже не город Белых гор
Рейтинг сообщения:0
Учиться никогда не поздно. Я тоже посматриваю листинг ассемблера после компиляции, чтобы проверить, насколько оптимально написана программа, но первичным нужно делать си.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Просто учиться не хватает самого дорогого - времени . Писать на асме начал для Зайлоговского Z80, когда ни С ни тем более AVR небыло. Интуитивно чувствую, что делает программа на С, но сам что либо написать ПОКА не в силах. Потому с месяц назад и просил здесь помощи, но, видно, не дождусь . На свои вопросы ответов не получаю, наверно глупые те вопросы... Ковыряюсь дальше. Сам, всё только сам... Может и рожУ что. Спасибо, что вообще ответили!
_________________ Я всё-всё узнAю и стану профессором.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Привет котам, Запустил я свой LPH-9157-2. Всё какое-то время работало отлично, но потом стал замечать, что цвета пошли не те.. В общем, не гасится зелёный (горит вполнакала даже если вывожу чёрный), да и красный "подсвечивает". Красный еле светит. В итоге цвета искажены. Если даю инверсию (0х21) то Красный светит нормально (опять же вместе с зелёным). Это что - хана дисплею или таблица цветов сбилась? Если таблица (0х2D) - то что там должно быть? (там 128 байт) Команду 0х2D я не посылал. Питаю от 3,3V, входы - через делители.
_________________ Я всё-всё узнAю и стану профессором.
Заголовок сообщения: Re: Дисплеи от мобильных телефонов- осцилограммы работы
Добавлено: Пн июл 11, 2016 06:36:53
Кто знает, что случилось с сайтом, откуда я п@здил схемы сотовых, в частности подключение дисплеев? http://service-schematics.ru/ Месяц назад работал, а сейчас посылает на X.
Привет уважаемым мудрым котам. Ковыряю библиотеку для LPH9157-2. Прошу помощи разобраться в принципе работы функции. Судя по тому, что маска сдвигается влево, шлём сначала младший бит? Или я не так понимаю? Так надо или всёже надо со старшего? В таблице баиты (напр. для символа "А") такие: 0x7E, 0x11, 0x11, 0x11, 0x7E Я ещё ничего в железе не делал, только разбираюсь. Запутался в конец. Спойлер//========= // Функция прорисовки символа на дисплее без цвета фона //========= void Send_Symbol_Shadow (unsigned char symbol, char x, char y, int t_color, char zoom_width, char zoom_height) { unsigned char temp_symbol, a, b, zw, zh, mask; char m, n; m=x; n=y; if (symbol>127) symbol-=64; //Убираем отсутствующую часть таблицы ASCII for ( a = 0; a < 5; a++) //Перебираю 5 байт, составляющих символ { temp_symbol = font_5x8[symbol-32][a]; zw = 0; while(zw != zoom_width) //Вывод байта выполняется zw раз { switch(rot) { case 0: case 180: n=y; break; case 90: case 270: m=x; break; } mask=0x01; for ( b = 0; b < 8; b++ ) //Цикл перебирания 8 бит байта { zh = 0; //в zoom_height раз увеличится высота символа while(zh != zoom_height) //Вывод пикселя выполняется z раз { switch(rot) { case 0: case 180: if (temp_symbol&mask) { Put_Pixel (m+zw, n+zh, t_color); } break; case 90: case 270: if (temp_symbol&mask) { Put_Pixel (m+zh, n+zw, t_color); } break; //Получить адрес начального пикселя по оси y для вывода очередного байта } zh++; } mask<<=1; //Смещаю содержимое mask на 1 бит влево; switch(rot) { case 0: case 180: n=n+zoom_height; break; case 90: case 270: m=m+zoom_height; break; } } zw++; } switch(rot) { case 0: case 180: m=m+zoom_width; break; case 90: case 270: n=n+zoom_width; break; } } }
А еще можно покурить регистры "Partial....." Я по поводу кода вывода символа. Циклы циклы циклы.
Доброго времени суток, уважаемые. Подскажите пожалуйста по поводу дисплея от Siemens A70. Подключал еще давно к атмеге, будто разобрался, заработал. Вот, сегодня решил подключить к STM32F103C8T6, библиотеки портировал. Питание STM-ки естественно от 3,3В, на дисплее ничего не выводится, контрастность на максимум поставил, если очень сильно присмотреться, то почти получается различить выводимую информацию, подаю на дисплей питание 5В - все отлично выводится. Есть ли у кого-нибудь опыт подрубания этого дисплея к 3,3В?
Нашел пару проектов по подключению этого дисплея к STM, брал инициализацию с них - та же проблема
Siemens A70.... фу какя древность... и ult их берете если работать с семенами надо брать от с65 с75-самые изученые и масовые кстати все семеновские диспы имеют питание 2,9в!!! подать на них 3в3 еще с болшим натягом можно ...но 5в это... уже полный беспредел ...а че мелочится давай уж сразу 230...
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Дисплеи от Siemens A70 очень удобные - паябельные и с встроенной подсветкой, работают без замечаний при напряжении питания от 2,7 до 3,6 вольт, это проверено, дальше просто не пробовал.
бгкот, спасибо за пример кода. к сожалению он не работает на моем дисплее. то ли он подпаленный, то ли контроллер глючный или немного не тот (не получается поменять адресацию, режим норм/инверсный). всем спасибо, просто стало скучно, хотел поиграться с этим дисплеем. ну, от 5В работает хорошо и то неплохо
зря ты на него 5в подаешь...это в 2раза от нормы! я понимаю что немцы живучие если ориг
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения