Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
19.11.2010, 21:56
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Библиотека SSD1289
Поздравляю!
Всё таки... чудес не бывает.
|
|
|
|
19.11.2010, 23:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
Значит не пропай?! Уже второго человека встречаю с подобной проблемой... Может и у меня по этой причине не запускается? Попробую вытравить тест-платку, а то у мне и правда всё на соплях получилось! И так: дубль №2
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
19.11.2010, 23:53
|
|
Прописка
Регистрация: 29.11.2007
Адрес: Могилев. РБ.
Сообщений: 143
Сказал спасибо: 30
Сказали Спасибо 20 раз(а) в 20 сообщении(ях)
|
Re: Библиотека SSD1289
AVR-ка какая-нить есть? - под нее скомпилю тестовый код (хватит даже atmega8 ).. проверите жив или нет пациент...
p.s. мне на следующей неделе придут AtXmega... вот там уже будем творить ![Улыбка](images/smilies/icon_smile.gif)
p.p.s. я когда запускал ls020xxxx думал уже убил.. 3 раза схему менял (разные преобразователи напряжений делал), потом еще прошивку переделывал раза 4.... так что не нужно отчаиваться...
Последний раз редактировалось Cyber_RAT; 20.11.2010 в 00:05.
|
|
|
|
20.11.2010, 00:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
Как его проверишь то?
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
20.11.2010, 00:32
|
|
Прописка
Регистрация: 29.11.2007
Адрес: Могилев. РБ.
Сообщений: 143
Сказал спасибо: 30
Сказали Спасибо 20 раз(а) в 20 сообщении(ях)
|
Re: Библиотека SSD1289
контроллер AVR (Фирмы Atmel) есть какой в заначке? под него сформирую прошивку и распайку выводов на дисп ( чтобы исключить lpc ваш) подпаяете(даже кварца не надо - внутренний RC генератор имеется)
|
|
|
|
20.11.2010, 00:57
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
Хорошо, попробую найти или куплю в конце то концов!
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
21.11.2010, 22:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
Странность у меня творится! Сигналы rs, wr скакают от 1.7в до 3.3в остальные как надо (0в-3.3в). Это как понимать?
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
21.11.2010, 23:05
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Библиотека SSD1289
Сообщение от Uragan90
|
Это как
|
Плохо! Отсоединяй LCD и меряй снова.
|
|
|
|
22.11.2010, 20:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
Спецы! Глянте мой проект для дисплея. Может где косяк с моей стороны закрался?
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
22.11.2010, 20:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
Вот если лень проект глядеть код его ниже!
PHP код:
|
#include ‹LPC23xx.H›
#define FCPU 10000000//-------------
#define NULL ((void *)0)
//----------------------------------------------------------------
#define SET_CS (FIO0SET = (1‹‹0))
#define CLR_CS (FIO0CLR = (1‹‹0))
#define SET_RS (FIO0SET = (1‹‹1))
#define CLR_RS (FIO0CLR = (1‹‹1))
#define SET_WR (FIO0SET = (1‹‹5))
#define CLR_WR (FIO0CLR = (1‹‹5))
#define SET_RESET (FIO0SET = (1‹‹4))
#define CLR_RESET (FIO0CLR = (1‹‹4))
//----------------------------------------------------------------
#define SET_DATA FIO1SET
#define CLR_DATA FIO1CLR
//======== color =================================================
#define BLACK 0x0000
#define WHITE 0xFFFF
#define GREEN 0x07E0
#define BLUE 0x001F
#define RED 0xF800
//================================================== ==============
void delay_ms (unsigned int ms);
void WrCmd(unsigned long int cmd);
void RdCmd(void);
void WrDat(unsigned long int data);
void SetReg(unsigned long int index, unsigned long int value);
void LcdInit(void);
void SetAddress(unsigned long int addr1, unsigned long int addr0);
void FillScreen(unsigned long int color);
void delay_ms(unsigned int ms)
{
unsigned long tmp = (FCPU / 5000)*ms;
while(tmp)
{
tmp--;
}
}
//================================================== ============
void PortInit(void)
{
SCS = 1;
FIO1DIR = 0xFFFF0000;
FIO0DIR = 0x33;
}
//================================================== =============
void WrCmd(unsigned long int cmd) //для 16 битной шины
{
CLR_CS;
CLR_RS;
SET_WR;
CLR_DATA |= 0xFFFF0000;
SET_DATA = (long)(cmd‹‹16);
CLR_WR;
__asm{nop}
SET_WR;
SET_CS;
SET_RS;
}
//================================================== ================
void WrDat(unsigned long int data) //для 16 битной шины
{
CLR_CS;
SET_RS;
SET_WR;
CLR_DATA |= 0xFFFF0000;
SET_DATA = (long)(data‹‹16);
CLR_WR;
__asm{nop}
SET_WR;
SET_CS;
SET_RS;
}
/*-----------------------------------------------------------------------*/
void LcdInit(void)
{
CLR_RESET;
delay_ms(20);
SET_RESET;
delay_ms(50);
SET_RS;
SET_CS;
SET_WR;
delay_ms(50);
SetReg(0x0000,0x0001); //Start Oscillation OSCEN=1
delay_ms(15);
// WrCmd(0x0003);WrDat(0xA2A4); //Power Control (1)
// WrCmd(0x000C);WrDat(0x0000); //Power Control (2)
// WrCmd(0x000D);WrDat(0x0308); //Power Control (3)
// WrCmd(0x000E);WrDat(0x3001); //Power Control (4)
// WrCmd(0x001E);WrDat(0x00AC); //Power Control (5)
SetReg(0x0003,0x6664);//0xAAAC); //Power Control (1)
SetReg(0x000C,0x0004);//0x0002); //Power Control (2)
SetReg(0x000D,0x0009);//0x000A); //Power Control (3)
SetReg(0x000E,0x0032);//0x2C00); //Power Control (4)
SetReg(0x001E,0x0029);//0x00B8); //Power Control (5)
delay_ms(15);
//#ifdef Reverse
SetReg(0x0001,0x293F); //Driver Output Control RL=0, REV=1, BGR=1, TB=0
//#else
// SetReg(0x0001,0x2B3F); //Driver Output Control RL=0, REV=1, BGR=1, TB=1
//#endif
SetReg(0x0002,0x0600);
// Restore VSYNC mode from low power state
SetReg(0x0010,0x0000);//0x0000); //Sleep mode cancel
SetReg(0x0011,0x6030); //Entry Mode
// DFM 0x4000 = 262L color
// DFM 0x6000 = 65K color
// AM 0x0000 = horizontal display
// AM 0x0008 = Vertical display
// ID[0] 0x0000 = horizontal decrement
// ID[0] 0x0010 = horizontal increment
// ID[1] 0x0000 = Vertical decrement
// ID[1] 0x0020 = Vertical increment
delay_ms(30);
SetReg(0x0005,0x0000); // Compare register
SetReg(0x0006,0x0000); // Compare register
// Horizontal and Vertical porch are for DOTCLK mode operation
SetReg(0x0016,0xEF1C); // Horizontal Porch
SetReg(0x0017,0x0103);//0x0003); // Vertical Porch
// Display Control
SetReg(0x0007,0x0033);//0x0233); // Display Control
// D1 0x0000 = display off
// D1 0x0002 = display on
// D0 0x0000 = internal display halt
// D0 0x0001 = internal display operate
SetReg(0x000B,0x5308);//0x5312); // Frame cycle control
SetReg(0x000F,0x0000); // Gate Scan Position
delay_ms(20);
// Vertical Scroll Control
SetReg(0x0041,0x0000); // Vertical Scroll Control
SetReg(0x0042,0x0000); // Vertical Scroll Control
// 1st Screen driving position
SetReg(0x0048,0x0000); // Start position. 0
SetReg(0x0049,0x013F); // End position. 319
// Source RAM address
SetReg(0x0044,0xEF00); //Horizontal RAM address position start/end setup
//dec 239
//dec 0, i.e. horizontal ranges from 0 -› 239
//POR value is 0xEF00 anyway. This address must be set before RAM write
SetReg(0x0045,0x0000); //Vertical RAM address start position setting
//0x0000 = dec 0
SetReg(0x0046,0x013F); //Vertical RAM address end position setting (0x013F = dec 319)
// 2nd Screen driving position
// LCD_WrCmd(0x004A);LCD_WrDat(0x0000); // Start position. 0
// LCD_WrCmd(0x004B);LCD_WrDat(0x0000); // End position. 0
delay_ms(20);
//gamma control
SetReg(0x0030,0x0707);
SetReg(0x0031,0x0704);
SetReg(0x0032,0x0204);
SetReg(0x0033,0x0201);
SetReg(0x0034,0x0203);
SetReg(0x0035,0x0204);
SetReg(0x0036,0x0204);
SetReg(0x0037,0x0502);
SetReg(0x003A,0x0302);
SetReg(0x003B,0x0500);
delay_ms(20);
WrCmd(0x0022);
}
//============================================
void SetReg(unsigned long int index, unsigned long int value)
{
WrCmd(index);
WrDat(value);
}
//================================================== ================
void FillScreen(unsigned long int color)
{
long int counter;
for (counter = 0; counter ‹ 76800; counter++)
{
WrDat(color);
}
}
//================================================== ==================
int main (void)
{
PortInit();
delay_ms(50);
LcdInit();
delay_ms(50);
for (;;)
{
FillScreen(BLACK);
delay_ms(500);
FillScreen(WHITE);
delay_ms(500);
}
}
|
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:22.
|
|