R
roy_mm
Guest
У меня Nokia 6610/6100 LCD с контроллером Philips.Я сопряжение его с atmega32 на 16MHz кристалла и JTAG отключен.Я использую WinAVR WinAVR 20080430.
Этот код для создания многоцветных поле в центре ЖК-дисплея.
Пожалуйста, помогите мне и исправлять этот код и написать (или сказать редактировался коды доступны на Интернете) ----
Код:# включить <avr/io.h>
# включить <util/delay.h># DEFINE F_CPU 16000000UL# DEFINE SPIPORT PORTB
# DEFINE SPIDDR DDRB
# DEFINE CS 2
# DEFINE SDA 3
определить RESET # 4
# DEFINE CLK 5# DEFINE CBI (REG, бит) (р & = ~ (1 <<бит))
# DEFINE ВОО (РЭГ, бит) (REG | = (1 <<бит))# DEFINE CS0 CBI (SPIPORT, CS);
# DEFINE CS1 ВОО (SPIPORT, CS);
# DEFINE CLK0 CBI (SPIPORT, CLK);
# DEFINE CLK1 ВОО (SPIPORT, CLK);
# DEFINE SDA0 CBI (SPIPORT, РСА);
# DEFINE sda1 ВОО (SPIPORT, РСА);
# DEFINE RESET0 CBI (SPIPORT, сброс);
# DEFINE RESET1 ВОО (SPIPORT, сброс);# определить байт неподписанных Char
байт N = 0;
байт S1, S2;
байт R, G, B;Пустота sendCMD (байт CMD);
Пустота SendData (байт CMD);
Пустота shiftBits (байт B);
Пустота setPixel (байт R, G байт, байт B);Пустота waitms (INT мс)
(
Int J;
для (J = 0; J <мс; J )
(
_delay_ms (1);
)
)п (VOID)
(
Int I;DDRB = 0xFF;SPIDDR = (1 <<ПДД) | (1 <<CLK) | (1 <<CS) | (1 <<RESET); / / Порт-Direction установке/ / аппаратный сбросCS0
SDA0
CLK1RESET1
RESET0waitms (10);RESET1CLK0
Sda1
CLK1waitms (10);/ / Программное обеспечение Сбросить
sendCMD (0x01);/ / Ночевать
sendCMD (0x11);/ / Установить Constrast
sendCMD (0x25);
SendData (0x3f);/ / Booster ПО
sendCMD (0x03);waitms (10);/ / Вывод инверсии на
sendCMD (0x21);/ / Обычный режим отображения
sendCMD (0x13);/ / Данные порядка
sendCMD (0xBA);/ / Доступ к памяти управления данными
sendCMD (0x36);/ / Цвет 8 бит
sendCMD (0x3a);
SendData (2);/ / Установка цвета таблицы поиска
sendCMD (0x2D);SendData (0) / / красный 000 Значение
SendData (2); / / красный 001 Значение
SendData (5); / / красный 010 Значение
SendData (7) / / красный 011 Значение
SendData (9) / / красный 100 Значение
SendData (11) / / красный 101 Значение
SendData (14) / / красный 110 Значение
SendData (16) / / красный 111 Значение
SendData (0) / / зеленая 000 Значение
SendData (2); / / зеленая 001 Значение
SendData (5); / / зеленая 010 Значение
SendData (7) / / зеленая 011 Значение
SendData (9) / / зеленая 100 Значение
SendData (11) / / зеленая 101 Значение
SendData (14) / / зеленая 110 Значение
SendData (16) / / зеленая 111 Значение
SendData (0) / / синяя 000 Значение
SendData (6) / / синяя 001 Значение
SendData (11) / / синяя 010 Значение
SendData (15) / / синяя 011 Значение/ / NOP
sendCMD (0x00);/ / Display On
sendCMD (0x29);/ / Установить адреса столбца
sendCMD (0x2A);
SendData (0);
SendData (131);/ / Адрес страницы Установить
sendCMD (0x2b);
SendData (0);
SendData (131);/ / Добавьте Stuff (фон)
sendCMD (0x2c);
для (i = 0; i <18000; I )
(
SendData (28) / / 28 зеленая
)waitms (200);/ / Рисуем разноцветные площади в центре экрана
для (i = 0; i <4096; I ) (
setPixel (I, (I% 64) 32 (I / 64) 32);
)While (1 == 1)
(
/ / Теперь добавьте сюда код))Пустота shiftBits (байт б) (CLK0
если ((B & 128)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 64)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 32)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 16)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 8)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 4)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 2)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 1)! = 0) sda1 другое SDA0
CLK1)Пустота setPixel (неподписанных цвета CHAR, Char знаком X, Y неподписанных Char)
(
X = 2 / / почему-то начинается 2
sendCMD (0x2b); / / Page начало / конец RAM
SendData (X);
SendData (132);
sendCMD (0x2A); / / колонка начала / окончания RAM
SendData (Y) / / почему-то начинается 2
SendData (131);
sendCMD (0x2C); / / Добавьте дерьмо
SendData (Color);
)/ / передать данные
Пустота SendData (байт данных) (CLK0
Sda1 / / 1 для параметра
CLK1shiftBits (данных);
)/ / отправить CMD
Пустота sendCMD (байт данных) (CLK0
SDA0 / / 1 для CMD
CLK1shiftBits (данных);
)
Этот код для создания многоцветных поле в центре ЖК-дисплея.
Пожалуйста, помогите мне и исправлять этот код и написать (или сказать редактировался коды доступны на Интернете) ----
Код:# включить <avr/io.h>
# включить <util/delay.h># DEFINE F_CPU 16000000UL# DEFINE SPIPORT PORTB
# DEFINE SPIDDR DDRB
# DEFINE CS 2
# DEFINE SDA 3
определить RESET # 4
# DEFINE CLK 5# DEFINE CBI (REG, бит) (р & = ~ (1 <<бит))
# DEFINE ВОО (РЭГ, бит) (REG | = (1 <<бит))# DEFINE CS0 CBI (SPIPORT, CS);
# DEFINE CS1 ВОО (SPIPORT, CS);
# DEFINE CLK0 CBI (SPIPORT, CLK);
# DEFINE CLK1 ВОО (SPIPORT, CLK);
# DEFINE SDA0 CBI (SPIPORT, РСА);
# DEFINE sda1 ВОО (SPIPORT, РСА);
# DEFINE RESET0 CBI (SPIPORT, сброс);
# DEFINE RESET1 ВОО (SPIPORT, сброс);# определить байт неподписанных Char
байт N = 0;
байт S1, S2;
байт R, G, B;Пустота sendCMD (байт CMD);
Пустота SendData (байт CMD);
Пустота shiftBits (байт B);
Пустота setPixel (байт R, G байт, байт B);Пустота waitms (INT мс)
(
Int J;
для (J = 0; J <мс; J )
(
_delay_ms (1);
)
)п (VOID)
(
Int I;DDRB = 0xFF;SPIDDR = (1 <<ПДД) | (1 <<CLK) | (1 <<CS) | (1 <<RESET); / / Порт-Direction установке/ / аппаратный сбросCS0
SDA0
CLK1RESET1
RESET0waitms (10);RESET1CLK0
Sda1
CLK1waitms (10);/ / Программное обеспечение Сбросить
sendCMD (0x01);/ / Ночевать
sendCMD (0x11);/ / Установить Constrast
sendCMD (0x25);
SendData (0x3f);/ / Booster ПО
sendCMD (0x03);waitms (10);/ / Вывод инверсии на
sendCMD (0x21);/ / Обычный режим отображения
sendCMD (0x13);/ / Данные порядка
sendCMD (0xBA);/ / Доступ к памяти управления данными
sendCMD (0x36);/ / Цвет 8 бит
sendCMD (0x3a);
SendData (2);/ / Установка цвета таблицы поиска
sendCMD (0x2D);SendData (0) / / красный 000 Значение
SendData (2); / / красный 001 Значение
SendData (5); / / красный 010 Значение
SendData (7) / / красный 011 Значение
SendData (9) / / красный 100 Значение
SendData (11) / / красный 101 Значение
SendData (14) / / красный 110 Значение
SendData (16) / / красный 111 Значение
SendData (0) / / зеленая 000 Значение
SendData (2); / / зеленая 001 Значение
SendData (5); / / зеленая 010 Значение
SendData (7) / / зеленая 011 Значение
SendData (9) / / зеленая 100 Значение
SendData (11) / / зеленая 101 Значение
SendData (14) / / зеленая 110 Значение
SendData (16) / / зеленая 111 Значение
SendData (0) / / синяя 000 Значение
SendData (6) / / синяя 001 Значение
SendData (11) / / синяя 010 Значение
SendData (15) / / синяя 011 Значение/ / NOP
sendCMD (0x00);/ / Display On
sendCMD (0x29);/ / Установить адреса столбца
sendCMD (0x2A);
SendData (0);
SendData (131);/ / Адрес страницы Установить
sendCMD (0x2b);
SendData (0);
SendData (131);/ / Добавьте Stuff (фон)
sendCMD (0x2c);
для (i = 0; i <18000; I )
(
SendData (28) / / 28 зеленая
)waitms (200);/ / Рисуем разноцветные площади в центре экрана
для (i = 0; i <4096; I ) (
setPixel (I, (I% 64) 32 (I / 64) 32);
)While (1 == 1)
(
/ / Теперь добавьте сюда код))Пустота shiftBits (байт б) (CLK0
если ((B & 128)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 64)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 32)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 16)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 8)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 4)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 2)! = 0) sda1 другое SDA0
CLK1CLK0
если ((B & 1)! = 0) sda1 другое SDA0
CLK1)Пустота setPixel (неподписанных цвета CHAR, Char знаком X, Y неподписанных Char)
(
X = 2 / / почему-то начинается 2
sendCMD (0x2b); / / Page начало / конец RAM
SendData (X);
SendData (132);
sendCMD (0x2A); / / колонка начала / окончания RAM
SendData (Y) / / почему-то начинается 2
SendData (131);
sendCMD (0x2C); / / Добавьте дерьмо
SendData (Color);
)/ / передать данные
Пустота SendData (байт данных) (CLK0
Sda1 / / 1 для параметра
CLK1shiftBits (данных);
)/ / отправить CMD
Пустота sendCMD (байт данных) (CLK0
SDA0 / / 1 для CMD
CLK1shiftBits (данных);
)