Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
20.07.2011, 14:12
|
|
Временная регистрация
Регистрация: 11.06.2006
Сообщений: 89
Сказал спасибо: 25
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Не работает UG-5664
Добрый день!
Подключаю дисплей UG-5664 к ATmega128.
Но он почему-то не работает. Пытаюсь хотя бы проинициализировать, чтобы выводился "мусор", но экран молчит. Контроллер нормальный, схема включения дисплея тоже вроде верна, сам дисплей живой.
Смотрел исходники самого производителя - там мудрёный код, но принцип инициализации от моего не отличается.
Помогите, пожалуйста.
Код:
|
#include "ioavr.h"
#include "intrinsics.h"
#define SetBit(x,y) (x|=(1‹‹y))
#define ClrBit(x,y) (x&=~(1‹‹y))
#define XTAL_MHz 7.3728
#define delay_us(us) __delay_cycles((unsigned long int)us*XTAL_MHz)
#define delay_ns(ns) delay_us(ns/1000)
#define delay_ms(ms) delay_us(ms*1000)
#define DATA_PORT PORTC
#define DATA_DDR DDRC
#define CONFIG_PORT PORTA
#define CONFIG_DDR DDRA
#define CS 5
#define RES 3
#define WR 1
#define RS 2
#define RD 0
#define BS0 6
#define BS1 7
void LCD_WriteCommand(unsigned char data)
{
ClrBit(CONFIG_PORT, RS);
ClrBit(CONFIG_PORT, CS);
ClrBit(CONFIG_PORT, WR);
DATA_PORT = data;
SetBit(CONFIG_PORT, WR);
SetBit(CONFIG_PORT, CS);
SetBit(CONFIG_PORT, RS);
}
void LCD_WriteData(unsigned char data)
{
SetBit(CONFIG_PORT, RS);
ClrBit(CONFIG_PORT, CS);
ClrBit(CONFIG_PORT, WR);
DATA_PORT = data;
SetBit(CONFIG_PORT, WR);
SetBit(CONFIG_PORT, CS);
SetBit(CONFIG_PORT, RS);
}
void LCD_Init(void)
{
ClrBit(CONFIG_PORT, RES);
delay_ms(40);
SetBit(CONFIG_PORT, RES);
LCD_WriteCommand(0xFD);
LCD_WriteData(0x12);
LCD_WriteCommand(0xAE);
LCD_WriteCommand(0xB3);
LCD_WriteData(0x91);
LCD_WriteCommand(0xCA);
LCD_WriteData(0x3F);
LCD_WriteCommand(0xA2);
LCD_WriteData(0x00);
LCD_WriteCommand(0xA1);
LCD_WriteData(0x00);
LCD_WriteCommand(0xA0);
LCD_WriteData(0x14);
LCD_WriteData(0x11);
LCD_WriteCommand(0xB5);
LCD_WriteData(0x00);
LCD_WriteCommand(0xAB);
LCD_WriteData(0x00);
LCD_WriteCommand(0xB4);
LCD_WriteData(0xA0);
LCD_WriteData(0xFD);
LCD_WriteCommand(0xC1);
LCD_WriteData(0x9F);
LCD_WriteCommand(0xC7);
LCD_WriteData(0x0F);
LCD_WriteCommand(0xB9);
LCD_WriteCommand(0xB1);
LCD_WriteData(0xE2);
LCD_WriteCommand(0xD1);
LCD_WriteData(0x82);
LCD_WriteData(0x20);
LCD_WriteCommand(0xBB);
LCD_WriteData(0x1F);
LCD_WriteCommand(0xB6);
LCD_WriteData(0x08);
LCD_WriteCommand(0xBE);
LCD_WriteData(0x07);
LCD_WriteCommand(0xA5);
LCD_WriteCommand(0xAF);
}
int main( void )
{
DATA_DDR = 0xFF;
DATA_PORT = 0x00;
CONFIG_DDR = 0xFF;
CONFIG_PORT = 0x00;
SetBit(CONFIG_PORT, RD);
LCD_Init();
while(1)
{};
} |
|
|
|
Сказали "Спасибо" Lockdog
|
|
|
20.07.2011, 17:05
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Не работает UG-5664
А по какому протоколу общаетесь с дисплеем? Судя по всему, если BS0=0, BS1=0, то выбрали 4-wire SPI ?
|
|
|
Сказали "Спасибо" Yurkin2007
|
|
|
20.07.2011, 17:11
|
|
Временная регистрация
Регистрация: 11.06.2006
Сообщений: 89
Сказал спасибо: 25
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Re: Не работает UG-5664
Сообщение от Yurkin2007
|
А по какому протоколу общаетесь с дисплеем? Судя по всему, если BS0=0, BS1=0, то выбрали 4-wire SPI ?
|
BS0 и BS1 я задал джамперами, там выставлен протокол 8080
|
|
|
Сказали "Спасибо" Lockdog
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:42.
|
|