Код: Выделить всё
#define LCD_nRES BIT0 // port 2
#define LCD_nSCE BIT1 // port 2
#define LCD_Dc BIT2 // port 2Код: Выделить всё
#define LCD_nRES BIT0 // port 2
#define LCD_nSCE BIT1 // port 2
#define LCD_Dc BIT2 // port 2Код: Выделить всё
void SpiInit()
{
P3SEL |= 0x0A; <- зачем это??? в МК нет P3
P1SEL |= 0xE0; <- надо добавить
P1SEL2 |= 0xE0; <- надо добавитьКод: Выделить всё
#include "msp430g2553.h"С чтения документации.я не знаю с чего начинать
Я уже писал ранее, что для ясности Вам нехудо бы прочесть про интерфес SPI, коли уж Вы его используете. Посмотреть на временные диаграммы, проникнуться его работой. Вы с тех пор хотя бы в Википедию сходили почитать про SPI? Похоже, что нет.Что он делает не пойму?
А вот про это уже надо читать в том даташите, что я привел в предыдущем сообщении.Команды типа управления дисплеем? Какие данные?
Встречный вопрос - как можно что-то пытаться сделать с МК, если нет понимания что делаете? Значит, надо снача почитать литературу.GreatDrek писал(а):как можно писать драйвер если я не знаю с чего начинать даже
Никак! Прото никак.GreatDrek писал(а):Как вообще можно проверить работоспособность дисплея без драйвера?
Он служит для синхронизации обмена данными. Подробности про протокол SPI в википедии.SCK
Тактовый сигнал SPI (Что он делает не пойму? )
Да! Подробности про протокол SPI в википедии.SDIN
Линия данных SPI (По этому проводу мы отправляем наши байты?)
Первая часть - ответ ДА! Про команды дисплея см. стр. 14 ДШ на контроллер, что YS прислал. Вообще, прочитайте этот документ внимательно прежде чем задавать вопросы. Все, что не команда ЖКИ, то данные. Например, какие пикселы на экране подсвечивать.Этот пин выбирает устанавливает – является передаваемый байт командой или данными. 1 – данные, 0 – команда. ( То есть если на этот выход подается + то дисплей принимает данные, если - то команды. Команды типа управления дисплеем? Какие данные?)
Не совсем. При подаже 0в ЖКИ активизитрует SPI интерфейс и принимает с него команды/данные. Перед каждой посылкой данных/команд этот вывод следует обнулять и устанавливать в 1 после окончания посылки. Это написано в протоколе SPI в Вики. Почитайте сначала.SCE
Чип селект. При нуле на SCE — чип дисплея принимает данные с входящей линии, при единице – находится в состоянии высокого импеданса, то есть отключён от линии.(сигнал ноль-активен) (То есть если мы подаем ток, то дисплей отрисовывает то что принял?)
Этот вывод для возврата контроллера ЖКИ в первоначальное состояние. После сброса его нужно будет заново активизировать. Подробности в ДШ.RES
Сигнал сброса внутренних регистров контроллера экрана и видеопамяти. Данный сигнал ноль-активен (Если нам надо сбросить текущий кадр например то подаем минус на этот выход?)
Если писать софтовый SPI, то про модуль в МК можно не читать.Опцию (3) из сообщения выше я-бы перевел в разряд обязательных.
Если напрямую кинуть на землю, работать не будет?Отвечает за контраст, по умолчанию должен быть подключён к земле через конденсатор 4.7uF
Код: Выделить всё
void LcdInit (void)
{
P2OUT &= ~(LCD_nRES + LCD_nSCE + LCD_Dc);
P2DIR |= LCD_nRES + LCD_nSCE + LCD_Dc;
P2OUT |= LCD_nRES;
LcdSendCom( 0x21 ); // LCD Extended Commands.
LcdSendCom( 0xE8 ); // Set LCD Vop (Contrast).
LcdSendCom( 0x04 ); // Set Temp coefficent.
LcdSendCom( 0x13 ); // LCD bias mode 1:48.
LcdSendCom( 0x20 ); // LCD Standard Commands, Horizontal addressing mode.
LcdSendCom( 0x0C ); // LCD in normal mode.
LcdClearMemory();
}