Сделал по аналогии с данной статьёй, т.е. процедуры записы, команд принципиально не отличаются, МК - ATMega8515. Проблема заключается в том, что если после установки X и У начать загружать данные в ОЗУ дисплея, то в итоге ничего не выводитсья, если послать только одну команду записи, после опять установить Х и У, снова команда на запись, снова ставить Х и У и т. д., то всё выводиться, но это по крайней мере не удобно. Тем более в даташите написано что после записи байта данных автоматически адрес столбца увеличивается на один, чего и не происходит. Что я делаю не правильно ? Вот код функций на всякий случай:
Код:
#define E 0b00000001 #define RD_W 0b00000010 #define A0 0b00000100 #define RST 0b00001000 #define C PORTB.4 #define C_L 1 #define C_R 0 #define DATA PORTA //Шина данных #define COM PORTB //порт управляющих выводов
После долгих эксперементов выяснилось что всё начинает работать как положено ещё дописать в функцию записи данных строчку очитски бита А0. Вот так теперь работает
Добрый день! Поэкспериментировал с дисплеем на основе KS0108. Все получилось. Но я так и не понял для чего параметр Z (начальная область отображения). Что измениться, если, например, вместо Z=0 установить Z=2.
На сайте MCS Electronics есть интересный для меня проект AN #148 - LCD display with touchscreen and AVR. Подскажите пожалуста кто знает тип дисплея с функцией тачскрин-а на базе контроллера KS0108.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
С выводом строк и графикой потихоньку стал понимать. А как сделать меню на GLCD? Не пинайте - я только только начинаю программировать. Желательно проект в протеусе...
В конце статьи: http://www.radiokot.ru/lab/controller/15/ есть ссылки на исходники. Исходники не работают. В ICCV7 for AVR компилятор сходу выдаёт ошибку что не обнаружен "delay.h". Люди добрые! Такая статья с виду классная, а повторить вывод строки в PROTEUS я так и не смог. Вышлите пожалуйста у кого есть рабочий проект.
сделал все как в статье. запустил в proteus 7,1 - все работает. Запустил в живую - не пашет. показывает засвеченный экран и все. потенциометр кручу верчу - появляется матрица пикселей/убывает матрица пикселей. картинка не выводится. в чем может быть проблема? подключение верно. камень работает без кварца на своей частоте 1 МГц. Atmega64.
Люди я приобрел дисплей 12864B V2.0 Так вот. Там немножко другая распиновка, не вижу CS1 и CS2 Там есть другие выходы как PSB, VOUT я могу подключить таким же образом как WG12864A пожалуйста объясните распиновку? на фото ниже...
Оговорюсь сразу, я новичок в области программирования МК, ну уж очень хочется разобраться и попробовать написать что то свое, у меня вопрос к автору статьи, не могли бы вы пояснить что означает эта запись:
Я так понял это встроенные функции CVAVR, которые позволяют, устанавливать, очищать, и читать бит. То есть директива мне ясна, но не понятно что выполняют параметры указанные в скобочках после директивы:
Код:
(x|=y) (x&=~y) (x&y)
Помогите пожалуйста разобраться, не пинайте сильно, новичок я, совсем зеленый...
Здравствуйте! Вот мучаю дисплей MT-12864J. В даташите написано:
Цитата:
Для начальной установки модуля необходимо подать сигнал RES равный логическому «0» длительностью не менее 1 мкс. При этом модуль выполняет команды установки Display Start Line в 0, DisplayOff. После деактивации сигнала RES (переключения в логическую «1» с временем фронта не более 200 нс) необходимо дождаться сброса битов BUSY и RESET в регистре состояния обоих кристаллов или выдержать паузу не менее 10 мкс. После этого модуль нормально функционирует
Я правильно понимаю, мне нужно подать на RES лог.0, подождать 1 мкс, подать на RES лог. 1, подождать 10 мкс.
Код:
void LSD_Ini(void) { RES_OFF; //nachalnaya ustanovka delay_us(10); RES_ON; delay_us(5000); while(GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_7)||GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_4)); //Цикл выполняется пока BUSY и RESET не станут нулями. // delay_us(100); // delay_us(1); SetXY(0,0,(CS1+CS2));//ustanovka nachala koordinat dlya cristalov
WriteCom(0xc0,(CS1+CS2));//Display Start Line
WriteCom(0x3f,(CS1+CS2));//Display ON }
Условия выполняются, но на RES так и остается лог. 1. Дисплей не работает. Он должен сам сброситься или должен быть лог.1? Или его надо сбрасывать принудительно?
_________________ Я конечно все понимаю, но этого я не понимаю.
Все заработало. RES должна быть единицей, а не работало потому что на одной ножке напряжение просело. +Дисплей все-таки работает только от 5В, хотя в даташите написано, что от 3 В тоже должен.
Добавлено after 1 minute 18 seconds: Все заработало! RES должна быть единицей, а не работало потому что на одной ножке напряжение просело. +Дисплей все-таки работает только от 5В, хотя в даташите написано, что от 3 В тоже должен.
_________________ Я конечно все понимаю, но этого я не понимаю.
Здравия! Переделываю проект на AtMega16 и попутно переназначаю на PORTA и PORTC. Проверяю в Proteus, не работает Код пишу в AvrStudio. Это мой первый проект где использую графический дисплей поэтому скорее всего ошибка очень глупая Прошу помощи корифеев
Решил задачку. Как оказалось банальная не внимательность, при инициализации дисплея нужно выставить бит RST в 1 и не снимать в дальнейшем. В этом случае всё прекрасно функционирует
Ктонить имеет опыт работы с дисплеями WG12864B? Нашёл инфу что основное отличие от WG12864A заключается в инверсии сигнала для CS1 и CS2, ну и распиновка соответственно. Два дня пытаюсь в реальном железе воспроизвести, в протеусе всё ок, в на макетке дисплей не отображает что я ему отправляю. Контрастность работает хорошо, через ардуину вывожу данные нормально, а с помощью моей программы для Mega16 никак :,(
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 54
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения