?? framebuffer.c
字號:
//GUICOM為命令地址
#define GUICOM((uchar*)0x03604000)
//GUIDATA為數據地址
#define GUIDATA((uchar*)0x03604001)
//ARM對GUI命令
void wcom(char com)
{
char *p_guic,temp;
p_guic=GUICOM;
temp=com;
*p_guic=temp;
}
void wdata(char dat)
{
char *p_guid,temp;
p_guid=GUIDATA;
temp=dat;
*p_guid=temp;
}
void GUIinit(void)
{
char i,j;
char const systab[8]=(Ox30,0x87,OxO7,Ox27,Ox42,Oxf0,Ox3O,OxOO};
char const
scrtab[10]={0x00,0x00,OxfO,0x00,Ox4O,Oxf0,OxOO,Ox8O,OxOO,OxOO};
//設置顯示頻率、顯示行數等
wcom(Ox40);
for(i=O;i<8;i++)
wdata(syrtab[i]);
//設置Frame-buffer首地址
wcom(Ox44);
for(j=0;j<10;j++)
wdata(scrtab[j]);
//設置畫面的水平移動量為0
wcom(Ox5a);
wdata(Ox00);
//設置顯示區為圖形,合成方式為或邏輯
wcom(Ox5b);
wdata(Ox00);
//顯示
wcom(Ox59);
wdata(Ox54);
}
void GUIcrl()
{
unsigned int i,j;
wcom(Ox4c);
wcom(Ox46);
wdata(Ox00);
wdata(Ox00);
wcom(Ox42);
for(i=O;i<240;i++)
for(j=0;j<40;j++)
wdata(Ox00);
wcom(Ox46);
wdata(Ox00);
wdata(Ox00);
}
void display(uchar x,uchar y uchar const *m)
{
uchar i;
uchar temp;
unsigned int z,cursorh,cursorl;
//0x4000為Frame-buffer首地址
z=x*40+y+0x4000;
cursorh=z/256;
cursorl=z%256;
wcom(Ox4f);
wcom(Ox46);
wdata(cursorl);
wdata(cursorh);
wcom(Ox42);
for(i=O;i<8;i++)
{
temp=*(m+i);
wdata(temp);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -