Добавлено after 1 minute 28 seconds: Данные напрямую через регистры в SPDR отправляйте. Возможно библиотеки ОЗУ используют, от этого медленно.
Добавлено after 16 minutes 53 seconds:
shonty писал(а):
out SPDR, color_back_H in TEMP,SPSR ; ожидание конца передачи sbrs TEMP,SPIF rjmp PC-2 out SPDR,color_back_L in TEMP,SPSR ; ожидание конца передачи sbrs TEMP,SPIF rjmp PC-2
Дошли руки ещё немного ускорить
Код:
out SPDR, color_back_H lpm ; ожидание конца передачи lpm lpm lpm lpm rjmp pc+1 in TEMP,SPSR ; считывание SPSR для очистки SPIF out SPDR,color_back_L in TEMP,SPSR ; ожидание конца передачи sbrs TEMP,SPIF rjmp PC-2
Первое ожидание конца передачи лучше так переписать. А вот второе.. лучше пока оставить, тем более если в цикл оформлять, то там немного по другому нужно сделать.
Добавлено after 41 minute 24 seconds: PS: последний код будет работать только при установленном бите SPI2X в SPSR. То есть скорость SPI=Fosc/2
Да... Китайцы намудрили с дисплеем. Этому ушлёпку нужно обязательно 3 байта на цвет. Не понимает он 5+6+5. Или 6+6+6 или 8+8+8. Козёл! Конструкции на ассемблере работают заметно быстрее. Получается заливка экрана чуть меньше 1 сек при полноцветном режиме. Буду пихать в SPI не стандартные комманды баскома типа SpiOut, а напихаю ассемблерных вставок.
Нормальный дисплей.. один раз разобраться.. У меня первый тфт 128*160 3 секунды грузился, потом я разгоном увлёкся))
При первой загрузке можно ещё такой фокус использовать: подавать сигнал на вывод LED дисплея когда экран уже залит и информация выведена, ну или лого.. Тогда создаётся иллюзия моментального включения.
Да оно и так уже нормально. Ассемблер помогает. Пришлось все же букварь по нему открывать. Выяснять какие регистры чем заняты по умолчанию. Плюнул в конце концов. Программно можно всяко исхитриться. А не нашел - где лежат переменные, переданные в процедуру. В примерах ссылок на них нет. Просто переменная в заголовке, как параметр и все. Обошелся и без них, но просто интересно.
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
vem566
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Novice user, спасибо. Во время работы чистить экран надобности нет, а при включении он заливается цветом в режиме 8 цветов. Меньше секунды. Быстрее все равно не будет.
Ну чо, коты. Опять я с вопросами. Китайцы задолбали конкретно. Приехал очередной дисплей. ОЛЕД. 128 х 64. Фамилия на обороте GME64128-02. Описания в сети крайне скудное и маловразумительное. На каком контроллере не понятно. То ли SSD1306, то ли SH110 так и не понял. Адрес I2C определяется как 3С, но с не меньшим успехом работает и с 78. Правда тут может быть причастен аппаратный I2C. Инициализация по "родному" букварю не проходит. Зато проходит от SSD1306. Картинку разворачивает строго по вертикали. Никакими ухищрениями положить картинку на бок, что бы 128 было по горизонтали, не получается. Кроме того, работает только половина экрана. То есть из 64 оображаются 32. При этом при выводе текста происходит смещение за границу экрана примерно на 28 пикселей. То есть чтобы получить начало текста(фонт 6х8) к нему надо прикрутить в начало 3-4 пробела. Всякие примеры ничего не меняют. Хоть с библиотекой glcd1306-i2c, хоть без нее. В последней версии этой библиотеки она вроде как может работать с обоими чипами, но волевое решение переключения на SH110 работать не хочет вовсе. Только с SSD1306. Впечатление, что или битый пришел, или китайцы перемудрили. Кто сталкивался с таким чудом?
Разобрался я с этич "чудом". Чип в нем SH1107, который изначально заточен под 128х128. Получается вообще хрен поймешь что. Мутота конкретная, короче. Будет попадаться такой - не советую. Что бы получить линию длиной 64 пикселя, нужно отправить 128. То ли съедает половину, то ли "черезстрочная развертка". Поворот на 90 градусов отсутствуе по причине не ведомой. Только на 180. Хотя в приличных дисплеях крутится с шагом 90. Прямой адресации пикселей нет. Почему он "графический"! Похоже один вариант приемлемой работы - через буфер всего экрана. Не нашел автоматического перехода на следующую строку при достижении конца текущей. Куда то в прорву уходят байты. Явная адресация строки. Иначе никак. И при строке 64 пикселя нужно отправлять 128, иначе половина. В то же время, если фонт 8х8, то для прорисовки символа хватает 8. Не нужно повторять. Может, конечно, у меня ума не хватает, но это далеко не первый дисплей у меня в руках.
Сейчас этот форум просматривают: Starichok51 и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения