Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
09.11.2010, 09:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,896
Сказал спасибо: 469
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Библиотека SSD1289
Здравствуйте уважаемые!!!
Помогите запустить дисплейчик, ниже код тестовой программы для LPC2368.
PHP код:
|
#include ‹LPC23xx.H›
#define FCPU 72000000
#define NULL ((void *)0)
#define FALSE (0)
#define TRUE (1)
#define SKY 0x5d1c
#define BLACK 0x0000
#define WHITE 0xFFFF
#define GREEN 0x07E0
#define BLUE 0x001F
#define RED 0xF800
#define YELLOW 0xffe0
#define MAGENTA 0xf81f
#define CYAN 0x07ff
#define ORANGE 0xfca0
#define PINK 0xF97F
#define BROWN 0x8200
#define GREY 0x8410
#define VIOLET 0x9199
#define SILVER 0xa510
#define GOLD 0xa508
#define BEGH 0xf77b
#define NAVY 0x000F
#define DARK_GREEN 0x03E0
#define DARK_CYAN 0x03EF
#define MAROON 0x7800
#define PURPLE 0x780F
#define OLIVE 0x7BE0
#define LIGHT_GREY 0xC618
#define DARK_GREY 0x7BEF
#define CS (1‹‹16)
#define RS (1‹‹17)
#define RD (1‹‹19)
#define WR (1‹‹18)
#define RES (1‹‹20)
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned int BOOL;
void delay_ms(unsigned int ms);
void delay_us(unsigned int us);
void PortInit(void);
void WrCmd(BYTE cmd);
void WrDat(WORD data);
void SetReg(BYTE index, WORD value);
void LcdInit(void);
void SetAddress(WORD addr1, BYTE addr0);
void FillScreen(WORD color);
void SetWindow(BYTE Hstart, BYTE Hend, WORD Vstart, WORD Vend);
void lcd_pset(WORD x, BYTE y, WORD color);
void Load_image(WORD x1, BYTE y1, const unsigned char m[]);
void lcd_circ(short xcenter, char ycenter, char rad, int color);
void lcd_line(short x1,char y1,short x2,char y2,int color);
void lcd_rect(short x, char y, short x1, char y1,int color);
void lcd_fillrect(short x, char y, short x1, char y1,int color);
void print_str(unsigned short x1, unsigned char y1, unsigned short int textcolor, unsigned short int backcolor, unsigned char txt[]);
const char ascii_tab1[][12];
unsigned char CHAR_H = 12, CHAR_W = 8;
void delay_ms(unsigned int ms)
{
unsigned long tmp = (FCPU / 4500)*ms;
while(tmp--);
}
void delay_us(unsigned int us)
{
unsigned long tmp = (FCPU / 4500000)*us;
while(tmp)
tmp--;
}
void PortInit(void)
{
SCS = 1; //??????????????????????????
FIO1SET |= 0x07000003; //???????????
FIO1DIR |= 0x07FFFF03; //???????????
}
void WrCmd(BYTE cmd) //для 16 битной шины
{
FIO1CLR |= CS;
FIO1CLR |= RS;
FIO1MASK = 0xff0000ff; //???????????????
FIO1PIN = (long)(cmd‹‹8); //????????????
FIO1MASK = 0;
FIO1CLR |= WR;
FIO1SET |= WR;
FIO1SET |= CS;
}
void WrDat(WORD data) //для 16 битной шины
{
FIO1CLR |= CS;
FIO1SET |= RS;
FIO1MASK = 0xff0000ff; //????????????????????????
FIO1PIN = (long)(data‹‹8); //????????????????????
FIO1MASK = 0;
FIO1CLR |= WR;
FIO1SET |= WR;
FIO1SET |= CS;
}
void SetReg(BYTE index, WORD value)
{
WrCmd(index);
WrDat(value);
}
void LcdInit(void)
{
PortInit();
FIO1CLR |= RES;
delay_ms(10);
FIO1SET |= RES;
SetReg(0x00,0x0001);
delay_ms(10);
SetReg(0x07,0x0000); //display control(1)
delay_ms(10);
/*** Display Setting ***/
SetReg(0x01, 0x6B3f); //Driver output control (1) 233f
SetReg(0x02, 0x0600); //LCD driving control
SetReg(0x03, 0xA8A6); //Entry mode
/*** Power Control ***/
SetReg(0x07, 0x0033);
SetReg(0x11, 0x6838);
SetReg(0x0C, 0x0005);
SetReg(0x0D, 0x300B);
SetReg(0x0E, 0x2000);
SetReg(0x10, 0x0000);
SetReg(0x1E, 0x00A8);
delay_ms(20);
}
void SetAddress(WORD addr1, BYTE addr0)
{
WrCmd(0x4E);
WrDat(addr0);
WrCmd(0x4f);
WrDat(addr1);
WrCmd(0x22);
}
void FillScreen(WORD color)
{
long counter;
SetAddress(0,0);
for(counter=0; counter‹(320*240); counter++)
{
WrDat(color);
}
}
void SetWindow(BYTE Hstart, BYTE Hend, WORD Vstart, WORD Vend)
{
WrCmd(0x44);
WrDat((WORD)(Hend‹‹8)|Hstart);
WrCmd(0x45);
WrDat(Vstart);
WrCmd(0x46);
WrDat(Vend);
}
void lcd_pset(WORD x, BYTE y, WORD color)
{
SetAddress(x,y);
WrDat(color);
}
//================================================== ============================
void Load_image(WORD x1, BYTE y1, const unsigned char m[])
{
WORD i = 2;
BYTE y;
WORD x;
for ( y=y1; y!=y1+m[1];y++)
{
for ( x=x1; x!=m[0]+x1;x++)
{
lcd_pset( x, y, (m[i]‹‹8)|(m[i+1]));
i+=2;
}
}
}
//************************************************** ************************************************
void lcd_circ(short xcenter, char ycenter, char rad, int color)
{
signed short tswitch, y1, x1 = 0;
char d;
d = ycenter - xcenter;
y1 = rad;
tswitch = 3 - 2 * rad;
while (x1 ‹= y1)
{
lcd_pset(xcenter + x1, ycenter + y1, color);
lcd_pset(xcenter + x1, ycenter - y1, color);
lcd_pset(xcenter - x1, ycenter + y1, color);
lcd_pset(xcenter - x1, ycenter - y1, color);
lcd_pset(ycenter + y1 - d, ycenter + x1, color);
lcd_pset(ycenter + y1 - d, ycenter - x1, color);
lcd_pset(ycenter - y1 - d, ycenter + x1, color);
lcd_pset(ycenter - y1 - d, ycenter - x1, color);
if (tswitch ‹ 0) tswitch += (4 * x1 + 6);
else
{
tswitch += (4 * (x1 - y1) + 10);
y1--;
}
x1++;
}
}
//************************************************** ************************************************
void lcd_line(short x1,char y1,short x2,char y2,int color)
{
signed short x,y,d,dx,dy,i,i1,i2,kx,ky;
signed char flag;
dx = x2 - x1;
dy = y2 - y1;
if (dx == 0 && dy == 0) lcd_pset(x1, y1, color);
else
{
kx = 1;
ky = 1;
if( dx ‹ 0 )
{
dx = -dx;
kx = -1;
}
else
if(dx == 0) kx = 0;
if(dy ‹ 0)
{
dy = -dy;
ky = -1;
}
if(dx ‹ dy)
{
flag = 0;
d = dx;
dx = dy;
dy = d;
}
else flag = 1;
i1 = dy + dy;
d = i1 - dx;
i2 = d - dx;
x = x1;
y = y1;
for(i=0; i ‹ dx; i++)
{
lcd_pset(x, y, color);
if(flag) x += kx;
else y += ky;
if( d ‹ 0 ) d += i1;
else
{
d += i2;
if(flag) y += ky;
else x += kx;
}
}
lcd_pset(x, y, color);
}
}
//************************************************** ***** Прямоугольник *******************************
void lcd_rect(short x, char y, short x1, char y1,int color)
{
lcd_line (x,y,x,y1,color);
lcd_line (x,y,x1,y,color);
lcd_line (x,y1,x1,y1,color);
lcd_line (x1,y,x1,y1,color);
}
//************************************************** ***** Pакрашенный прямоугольник *****************************
void lcd_fillrect(short x, char y, short x1, char y1,int color)
{
char i;
for (i=y; i‹=y1; i++) lcd_line(x,i,x1,i,color);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++
//================================================== ===========================
void print_str(unsigned short x1, unsigned char y1, unsigned short int textcolor, unsigned short int backcolor, unsigned char txt[])
{
unsigned char i=0,y=0,c,h,ch,p,mask;
unsigned short x=0;
next:
while (txt[i]!=0)
{
c = txt[i];
i++;
if(c==0x0A)
{y1+=CHAR_H;x1=0;goto next;}
if(x›311)
{y1+=CHAR_H;x1=0;}
y = y1;
x = x1;
x1+= CHAR_W;
if(c›0x80)
c-=0x40;
for (h=0; h‹CHAR_H; h++) // every column of the character
{
//if(Font==0)
//{
// ch=ascii_tab[ c-32 ][CHAR_H-h-1];
// mask=0x80;
//}
//else
//{
ch=ascii_tab1[ c-32 ][h];
mask=0x80;
//}
for (p=0; p‹CHAR_W; p++) // write the pixels
{
if (ch&mask)
{
lcd_pset(x+p, y, textcolor);
}
else
{
lcd_pset(x+p, y, backcolor);
}
mask=mask/2;
}
y++;
}
}
//lcd_pozition[0]=x/CHAR_W;lcd_pozition[1]=(124-y1)/CHAR_H;
}
int main(void) //Тест
{
LcdInit();
lcd_rect(43, 166, 274, 233, BLACK);
}
const char ascii_tab1[][12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00, //!
0x00, 0x00, 0x00, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x18, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00, 0x00,
0x00, 0x00, 0x00, 0x1C, 0x36, 0x1C, 0x3B, 0x6E, 0x66, 0x3B, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00,
0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x66, 0x3C, 0x7E, 0x3C, 0x66, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
0x00, 0x00, 0x00, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x3E, 0x00, //0
0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00,
0x00, 0x00, 0x3E, 0x7F, 0x63, 0x03, 0x06, 0x0C, 0x18, 0x33, 0x7F, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x03, 0x03, 0x1E, 0x03, 0x03, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x0E, 0x1E, 0x36, 0x66, 0x46, 0x7F, 0x06, 0x06, 0x0F, 0x00,
0x00, 0x00, 0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x03, 0x03, 0x63, 0x7E, 0x00,
0x00, 0x00, 0x3E, 0x61, 0x60, 0x60, 0x7E, 0x63, 0x63, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x3F, 0x33, 0x03, 0x03, 0x07, 0x0E, 0x0C, 0x0C, 0x0C, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x3E, 0x63, 0x63, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x3F, 0x03, 0x06, 0x3C, 0x00, //9
0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00,
0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00,
0x00, 0x00, 0x3E, 0x7F, 0x63, 0x07, 0x06, 0x0C, 0x0C, 0x00, 0x0C, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x6B, 0x6B, 0x6B, 0x6F, 0x6E, 0x60, 0x3C, 0x00,
0x00, 0x00, 0x1C, 0x36, 0x63, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x00, //A
0x00, 0x00, 0x7E, 0x33, 0x33, 0x33, 0x3E, 0x33, 0x33, 0x33, 0x7E, 0x00,
0x00, 0x00, 0x1E, 0x33, 0x60, 0x60, 0x60, 0x60, 0x60, 0x33, 0x1E, 0x00,
0x00, 0x00, 0x7C, 0x36, 0x33, 0x33, 0x33, 0x33, 0x33, 0x36, 0x7C, 0x00,
0x00, 0x00, 0x7F, 0x31, 0x30, 0x32, 0x3E, 0x32, 0x30, 0x31, 0x7F, 0x00,
0x00, 0x00, 0x7F, 0x31, 0x30, 0x32, 0x3E, 0x32, 0x30, 0x30, 0x78, 0x00,
0x00, 0x00, 0x1E, 0x33, 0x60, 0x60, 0x60, 0x60, 0x67, 0x33, 0x1D, 0x00,
0x00, 0x00, 0x63, 0x63, 0x63, 0x7F, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x00,
0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00,
0x00, 0x00, 0x0F, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3C, 0x00,
0x00, 0x00, 0x73, 0x33, 0x33, 0x36, 0x3C, 0x34, 0x36, 0x33, 0x73, 0x00, //K
0x00, 0x00, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x33, 0x7F, 0x00,
0x00, 0x00, 0x63, 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x63, 0x00,
0x00, 0x00, 0x63, 0x63, 0x73, 0x7B, 0x7F, 0x6F, 0x67, 0x63, 0x63, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x7E, 0x33, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x30, 0x78, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x63, 0x67, 0x3E, 0x07, 0x00,
0x00, 0x00, 0x7E, 0x33, 0x33, 0x33, 0x33, 0x3E, 0x3C, 0x36, 0x73, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x60, 0x30, 0x1C, 0x06, 0x03, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x7E, 0x5A, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00,
0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x7F, 0x3E, 0x00,
0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x08, 0x00,
0x00, 0x00, 0x63, 0x63, 0x63, 0x6B, 0x6B, 0x6B, 0x7F, 0x3E, 0x14, 0x00,
0x00, 0x00, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x63, 0x63, 0x00,
0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x18, 0x18, 0x3C, 0x00,
0x00, 0x00, 0x7F, 0x63, 0x47, 0x0E, 0x1C, 0x38, 0x71, 0x63, 0x7F, 0x00, //Z
0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C,
0x00, 0x00, 0x40, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00,
0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C,
0x00, 0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
0x00, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3C, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, //a
0x00, 0x00, 0x70, 0x30, 0x30, 0x30, 0x3E, 0x33, 0x33, 0x33, 0x6E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x60, 0x60, 0x60, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x0E, 0x06, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x63, 0x7F, 0x60, 0x60, 0x3E, 0x00,
0x00, 0x00, 0x1E, 0x33, 0x33, 0x30, 0x7C, 0x30, 0x30, 0x30, 0x78, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3B, 0x66, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x7C,
0x00, 0x00, 0x70, 0x30, 0x30, 0x36, 0x3B, 0x33, 0x33, 0x33, 0x73, 0x00,
0x00, 0x00, 0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00,
0x00, 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x66, 0x66, 0x66, 0x3C, 0x00,
0x00, 0x00, 0x70, 0x30, 0x30, 0x33, 0x36, 0x3C, 0x36, 0x36, 0x73, 0x00, //k
0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x76, 0x7F, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x6E, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x6E, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x30, 0x78,
0x00, 0x00, 0x00, 0x00, 0x3B, 0x66, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x6E, 0x3B, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3F, 0x60, 0x60, 0x3E, 0x03, 0x03, 0x7E, 0x00,
0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x1B, 0x0E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x36, 0x36, 0x1C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, 0x6B, 0x6B, 0x7F, 0x36, 0x00,
0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x63, 0x00,
0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x3F, 0x03, 0x03, 0x3E,
0x00, 0x00, 0x00, 0x00, 0x3F, 0x23, 0x06, 0x0C, 0x18, 0x31, 0x3F, 0x00, //z
0x00, 0x0E, 0x18, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0E,
0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
0x00, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x18, 0x18, 0x70,
0x00, 0x00, 0x00, 0x3B, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x08, 0x1C, 0x36, 0x63, 0x63, 0x7F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1F, 0x33, 0x63, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x00, //А
0x00, 0x00, 0x7F, 0x33, 0x33, 0x30, 0x3E, 0x33, 0x33, 0x33, 0x7E, 0x00,
0x00, 0x00, 0x7E, 0x33, 0x33, 0x33, 0x3E, 0x33, 0x33, 0x33, 0x7E, 0x00,
0x00, 0x00, 0x7F, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
0x00, 0x00, 0x0E, 0x1E, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3E, 0x7F, 0x63,
0x00, 0x00, 0x7F, 0x31, 0x30, 0x34, 0x3C, 0x34, 0x31, 0x31, 0x7F, 0x00,
0x00, 0x00, 0x6B, 0x6B, 0x6B, 0x3E, 0x1C, 0x3E, 0x6B, 0x6B, 0x6B, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x63, 0x03, 0x1E, 0x03, 0x63, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x63, 0x63, 0x67, 0x6F, 0x7F, 0x7B, 0x73, 0x63, 0x63, 0x00,
0x22, 0x1C, 0x63, 0x63, 0x67, 0x6F, 0x7F, 0x7B, 0x73, 0x63, 0x63, 0x00,
0x00, 0x00, 0x73, 0x33, 0x33, 0x36, 0x3C, 0x36, 0x33, 0x33, 0x73, 0x00, //К
0x00, 0x00, 0x0F, 0x1B, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x63, 0x00,
0x00, 0x00, 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x63, 0x63, 0x00,
0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x00,
0x00, 0x00, 0x7E, 0x33, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x30, 0x78, 0x00,
0x00, 0x00, 0x3E, 0x63, 0x60, 0x60, 0x60, 0x60, 0x60, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x7E, 0x5A, 0x5A, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00,
0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x3F, 0x03, 0x03, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x3E, 0x6B, 0x6B, 0x6B, 0x6B, 0x3E, 0x08, 0x08, 0x1C, 0x00,
0x00, 0x00, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x63, 0x63, 0x00,
0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7F, 0x7F, 0x03,
0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x3F, 0x03, 0x03, 0x03, 0x03, 0x00,
0x00, 0x00, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x7F, 0x7F, 0x00,
0x00, 0x00, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xFE, 0xFF, 0x03, //Щ
0x00, 0x00, 0x78, 0x78, 0x58, 0x18, 0x1E, 0x1B, 0x1B, 0x1B, 0x1E, 0x00,
0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x7B, 0x6F, 0x6F, 0x6F, 0x7B, 0x00,
0x00, 0x00, 0x78, 0x30, 0x30, 0x30, 0x3E, 0x33, 0x33, 0x33, 0x3E, 0x00,
0x00, 0x00, 0x3C, 0x46, 0x03, 0x03, 0x1F, 0x03, 0x03, 0x46, 0x3C, 0x00,
0x00, 0x00, 0x6E, 0x6B, 0x6B, 0x6B, 0x7B, 0x6B, 0x6B, 0x6B, 0x6E, 0x00,
0x00, 0x00, 0x3F, 0x63, 0x63, 0x63, 0x63, 0x3F, 0x33, 0x33, 0x63, 0x00, //Я
0x00, 0x00, 0x00, 0x00, 0x3C, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, //а
0x00, 0x01, 0x1F, 0x18, 0x0C, 0x06, 0x3A, 0x66, 0x66, 0x66, 0x3C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7E, 0x33, 0x33, 0x3E, 0x33, 0x33, 0x7E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7F, 0x33, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1E, 0x36, 0x36, 0x36, 0x36, 0x36, 0x7F, 0x63,
0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x63, 0x7F, 0x60, 0x60, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x6B, 0x6B, 0x3E, 0x1C, 0x3E, 0x6B, 0x6B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x03, 0x0E, 0x03, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x00,
0x00, 0x22, 0x1C, 0x00, 0x63, 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x00,
0x00, 0x00, 0x00, 0x00, 0x73, 0x33, 0x36, 0x3C, 0x36, 0x33, 0x73, 0x00, //к
0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x33, 0x33, 0x33, 0x33, 0x73, 0x00,
0x00, 0x00, 0x00, 0x00, 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00,
0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x7F, 0x63, 0x63, 0x63, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x63, 0x63, 0x63, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x63, 0x63, 0x63, 0x63, 0x63, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7E, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x30, 0x78,
0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x60, 0x60, 0x60, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7E, 0x5A, 0x5A, 0x18, 0x18, 0x18, 0x3C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x63, 0x3F, 0x03, 0x03, 0x3E,
0x00, 0x00, 0x00, 0x00, 0x3E, 0x6B, 0x6B, 0x6B, 0x3E, 0x08, 0x1C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x63, 0x00,
0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7F, 0x03,
0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x3F, 0x03, 0x03, 0x03, 0x00,
0x00, 0x00, 0x00, 0x00, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x7F, 0x00,
0x00, 0x00, 0x00, 0x00, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xFF, 0x03, //щ
0x00, 0x00, 0x00, 0x00, 0x78, 0x58, 0x18, 0x1E, 0x1B, 0x1B, 0x1E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, 0x7B, 0x6F, 0x6F, 0x7B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x78, 0x30, 0x30, 0x3E, 0x33, 0x33, 0x7E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3E, 0x63, 0x03, 0x0F, 0x03, 0x63, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x6E, 0x6B, 0x6B, 0x7B, 0x6B, 0x6B, 0x6E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3F, 0x63, 0x63, 0x1F, 0x33, 0x33, 0x63, 0x00, //я
0x00, 0x00, 0x36, 0x00, 0x3E, 0x63, 0x63, 0x7F, 0x60, 0x60, 0x3E, 0x00, //ё
0x36, 0x00, 0x7F, 0x31, 0x31, 0x34, 0x3C, 0x34, 0x31, 0x31, 0x7F, 0x00 //Ё
};
|
Код набрал из примеров и вроде ошибок нет, но не понятны некоторые строки которые закоментировал://??????????????
Дисплей подключен на первый порт мк, биты дисплея BBD0-BD15 подсажены на мк P1[0]-P1[23]. ВЫРУЧАЙТЕ!!!
__________________
Я бы изменил весь мир, но бог не дал исходников
Последний раз редактировалось Uragan90; 09.11.2010 в 09:52.
|
|
|
|
09.11.2010, 10:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Библиотека SSD1289
Сообщение от Uragan90
|
биты дисплея BBD0-BD15 подсажены на мк P1[0]-P1[23].
|
Они не подряд идут? Тормоза будут.
В программе куча мелких косяков. Например все конструкции типа FIO1SET |= WR; должны быть FIO1SET = WR; У того, кто писал этот исходник шина данных висит на 8-23 битах порта. Соответственно данные он перед выводом сдвигает:
FIO1PIN = (long)(data‹‹ ; //????????????????????
Придется вместо однотактового сдвига данные препарировать - раздвигать.
В общем что успею за 5 минут:
FIO1MASK = 0xff0000ff; //маска вывода, изменяться будут только разряды порта установленные в 0, в данном случае 8-23. Именно туда у автора подключена шина данных. В случае подключения к 0-23 разрядам нужно 0xFF000000
FIO1PIN = (long)(data‹‹ ; // Собственно вывод. Изменяться только не замаскированные предыдущей командой разряды. Сдвиг не нужен при подключении шины к 0-23 разрядам.
void PortInit(void)
{
SCS = 1; //вкл. быстрых портов, ЕМНИП они в 23хх и так быстрые по умолчанию. На Машу пальцем не испортить
FIO1SET |= 0x07000003; //Вывод какого то значения изначально
FIO1DIR |= 0x07FFFF03; // Разряды = 1 будут выходами.
}
|
|
|
|
09.11.2010, 11:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,896
Сказал спасибо: 469
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
Спасибо, попробую испавить ошибки и прошить мк!
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
09.11.2010, 12:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,896
Сказал спасибо: 469
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
На моей отладке мк успешно определился, я даже считал начальные значения памяти через флеш меджик. Зашил его прошивой и он не откликается теперь КАРАУЛ ПОМОГИТЕ!
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
09.11.2010, 12:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,896
Сказал спасибо: 469
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
У меня на мк нет формирования сброса, тоесть ресет сразу на переходник фт232 и более не куда, может в этом косяк? До зашивки через терминал откликался, а теперь нет
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
09.11.2010, 14:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,896
Сказал спасибо: 469
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
Вреде стал заливать код после манипуляций с драйвером- заливает, стирает, но в терминале флеш меджика попрежнему не работает. Может он и не должен?
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
09.11.2010, 18:05
|
|
Прописка
Регистрация: 11.07.2007
Сообщений: 127
Сказал спасибо: 8
Сказали Спасибо 24 раз(а) в 18 сообщении(ях)
|
Re: Библиотека SSD1289
Незнаю как тут подключить код,отправил проектом. Данные с P1.8-P1.23 пины. Управление так CS-P1[24], RS-P1[25],WR-P1[26],RD-P1[27], RES-P1[28].
Перезалил архив,в отладчике увидел ошибку ,не передергивал RS
Последний раз редактировалось yarunt; 09.11.2010 в 18:17.
|
|
|
|
09.11.2010, 18:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Библиотека SSD1289
Походу один и тот же исходник. И косяки все те же. Зачем делать FIO1CLR |= RS; если регистр FIO1CLR специально предназначен для исключения операции чтения? Или контроллер кажется слишком шустрым, что притормозить хочется?
|
|
|
|
09.11.2010, 18:42
|
|
Прописка
Регистрация: 11.07.2007
Сообщений: 127
Сказал спасибо: 8
Сказали Спасибо 24 раз(а) в 18 сообщении(ях)
|
Re: Библиотека SSD1289
Сообщение от kison
|
Походу один и тот же исходник. И косяки все те же. Зачем делать FIO1CLR |= RS; если регистр FIO1CLR специально предназначен для исключения операции чтения? Или контроллер кажется слишком шустрым, что притормозить хочется?
|
Это чтоб наверняка заработал проект,а дальше причешим проект.
|
|
|
|
09.11.2010, 18:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,896
Сказал спасибо: 469
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека SSD1289
yarunt, Спасибо, конечно но к сожалению опять не катит А зачем с 8 по 23??? Надо с 0 по 23!! Прц шется нормально вроди и ни фига
__________________
Я бы изменил весь мир, но бог не дал исходников
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:14.
|
|