Как отрисовать пиксель на дисплее LCD 12864B
- Войдите на сайт для отправки комментариев
Здравствуйте, пацаны! Я в Arduino новичок, и по этому по-брацки, пацаны, помогите. В общем, есть Arduino Mega 2560 и дисплей LCD 12864B v2.0. Это дело подключается по параллельному интерфейсу. Вот тут такая распиновка:
1. GND
2. VCC
3. V0
4. RS
5. R/W
6. E
7-14. DB0-DB-7
15. PSB
16. NC
17. RST
18. VOUT
19. BLA
20. BLK
Подключать что как в принципе понятно, (за искючением RS, E, NC, RST, VOUT - я так и не понял зачем они).
Меня интересует сам интерфейс/протокол работы с этим дисплеем. Как мне на этом дисплее отрисовать точку по указанным коордам? Что посылать нужно?
Мне бы научиться отрисовать всего лишь точку, а дальше я Брезенгхемом отрисую линии, Безьешкой кривые и т.д. Но, как отрисовать точку без всяких там библиотек и т.д.? Спасибо.
Ну ежели без библиотеки, тогда всё одно парочку скачать надобно. Откройте, и выдерните кусок который пиксель рисует. Да, и инициализация потребуется, тоже заимствуйте. Если с нуля, то даташит 12864 контролера из интернета, там все команды расписаны, чего куда рассылать
Вроде потихоньку начинает допирать. Теперь у меня другой вопрос. Вот смотрите, я сейчас смотрю даташит ST7920. И там вот в битах указан крестик, это что означает? Какой сигнал стоит подавать. Скрин прилагаю...
Вот ссылка на даташит если что: http://pdf1.alldatasheet.com/datasheet-pdf/view/326219/SITRONIX/ST7920.html
Х это когда по барабану, 0 или 1
буковкой X обычно обозначают "don't care", что по-русски значит "не @бёт" :)
Спасибо! Теперь у меня такой бред творится. Один скетч работает, а другой нет. Скрины прилагаю, (у меня Arduino MEGA 2560)
Два идентичных скетча. Просто лежат в разных папках. Тот, который лежит в стандартной папке ардуино (ну когда скетч сохраняешь) - работает. светодиод моргает. А я создал другой .ino файл, туда вставил точно такой же код. А он не работает, это что за магия, пацаны?
Плюс к тому, скетчи вроде бы одинаковые, а размер после компиляции разный. Тот который работает (называется test123) имеет меньший размер - 1 554 байт. А тот, который не работает - 1 694 байт. Всё без проблем компилится, но светодиод не моргает. Это какая-то особенность, да?
Cлева скетч НЕ работает, а справа - работает.
Попытался продебажить setup(). Ну, через Serial.println(); и он не работает, следовательно, не работает и сам setup(). Кстати, в папке (где скетч не пашет) ещё лежат cpp и h файлы, я написал классы (драйвер дисплея и т.д.), наверное это как-то влияет. Arduino.h подключил. Будем копаться дальше...
Короче, вот такие симптомы обнаружил. Когда, у класса нет конструктора, то всё нормально работает. А, стоит мне добавить обратно конструктор к классу, скетч не работает. Вот такие вот дела. Думаю, есть некая точка входа ибо когда мы вне setup() вызываем конструктор, то setup() просто игнорируется.
Пурга какая-то. У меня наверно с несколько десятков классов в проекте, все с конструкторами, часть - определена глобальными переменными, всё работает. Версия IDE - 1.6.7.
nurlanovic, конструктор глобальной переменной вызывается до setup и до инициализации части железа, т.е. в нем доступны далеко не все возможности Ардуины. Поэтому инициализацию зачастую проводят не в контрукторе, а в отдельном методе, вызываемом из setup.
nurlanovic, конструктор глобальной переменной вызывается до setup и до инициализации части железа, т.е. в нем доступны далеко не все возможности Ардуины. Поэтому инициализацию зачастую проводят не в контрукторе, а в отдельном методе, вызываемом из setup.
Не, ну если конечно тама с железкой какой жёстко работа идёт, да ещё в конструктор впихнутая - так это не проблема ардуины, это проблема автора такого конструктора.
буковкой X обычно обозначают "don't care", что по-русски значит "не @бёт" :)
Да, а я думал, что X в даташитах, это просто сокращённая запись от "поХ" :))))
Короче, вот такие симптомы обнаружил. Когда, у класса нет конструктора, то всё нормально работает. А, стоит мне добавить обратно конструктор к классу, скетч не работает.
Ну и нахрена добавлять, если нормально работает без него?
Думаю, есть некая точка входа ибо когда мы вне setup() вызываем конструктор, то setup() просто игнорируется.
Не-а. Не игнорируется.