📄 44blcd.c
字号:
#include <string.h>
#include "..\inc\option.h"
#include "..\inc\def.h"
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
#include "..\inc\lcd.h"
#include "..\inc\lcdlib.h"
#include "..\inc\44blcd.h"
#include "..\inc\PLMM1.h"
#include "..\inc\PLMM2.h"
#include "..\inc\PLMM3.h"
#include "..\inc\PLMM4.h"
#include "..\inc\PLMM5.h"
void displaylcd(unsigned char num);
void clrscreen(void);
void Lcd_MonoInit(void);
/*volatile char which_int=0;*/
void LcdInit(void)
{
unsigned char i = 0;
Lcd_MonoInit();
Uart_Printf("开始 循环显示256 色图象\n");
Uart_Printf("计算机键盘任意键退出!!!\n");
clrscreen();
while ( !Uart_GetKey())
{
displaylcd(1);
Delay(30000);
displaylcd(2);
Delay(17000);
displaylcd(3);
Delay(17000);
displaylcd(4);
Delay(17000);
displaylcd(5);
Delay(17000);
}
}
void Lcd_MonoInit(void)
{
#define MVAL_USED 0
if((U32)frameBuffer256==0)
{
frameBuffer256=(unsigned int (*)[SCR_XSIZE/4])malloc(ARRAY_SIZE_COLOR);
}
rLCDCON1=(0)|(2<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_COLOR<<12);
// disable,8B_SNGL_SCAN,WDLY=8clk,WLH=8clk,
rLCDCON2=(LINEVAL)|(HOZVAL_COLOR<<10)|(10<<21);
//LINEBLANK=10 (without any calculation)
rLCDSADDR1= (0x3<<27) | ( ((U32)frameBuffer256>>22)<<21 ) | M5D((U32)frameBuffer256>>1);
// 256-color, LCDBANK, LCDBASEU
rLCDSADDR2= M5D(((U32)frameBuffer256+(SCR_XSIZE*(LINEVAL+1)))>>1) | (MVAL<<21);
rLCDSADDR3= (LCD_XSIZE/2) | ( ((SCR_XSIZE-LCD_XSIZE)/2)<<9 );
//The following value has to be changed for better display.
rREDLUT =0xfdb97531;
rGREENLUT=0xfdb97531;
rBLUELUT =0xfb73;
rDITHMODE=0x0;
rDP1_2 =0xa5a5;
rDP4_7 =0xba5da65;
rDP3_5 =0xa5a5f;
rDP2_3 =0xd6b;
rDP5_7 =0xeb7b5ed;
rDP3_4 =0x7dbe;
rDP4_5 =0x7ebdf;
rDP6_7 =0x7fdfbfe;
rLCDCON1=(1)|(2<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_COLOR<<12);
}
void displaylcd(unsigned char num)
{
unsigned int *pbuffer,temp_data;
int i,j=0;
pbuffer =(U32*) frameBuffer256;
if (num == 1)
{
for(i=0,j=0;i<19200;i++,j=j+4)
{
pbuffer[i]=(plmmBitmap1[j]<<24)+(plmmBitmap1[j+1]<<16)+(plmmBitmap1[j+2]<<8)+plmmBitmap1[j+3];
}
}
else if (num == 2)
{
for(i=0,j=0;i<19200;i++,j=j+4)
{
pbuffer[i]=(plmmBitmap2[j]<<24)+(plmmBitmap2[j+1]<<16)+(plmmBitmap2[j+2]<<8)+plmmBitmap2[j+3];
}
}
else if (num == 3)
{
for(i=0,j=0;i<19200;i++,j=j+4)
{
pbuffer[i]=(plmmBitmap3[j]<<24)+(plmmBitmap3[j+1]<<16)+(plmmBitmap3[j+2]<<8)+plmmBitmap3[j+3];
}
}
else if (num == 4)
{
for(i=0,j=0;i<19200;i++,j=j+4)
{
pbuffer[i]=(plmmBitmap4[j]<<24)+(plmmBitmap4[j+1]<<16)+(plmmBitmap4[j+2]<<8)+plmmBitmap4[j+3];
}
}
else if (num == 5)
{
for(i=0,j=0;i<19200;i++,j=j+4)
{
pbuffer[i]=(plmmBitmap5[j]<<24)+(plmmBitmap5[j+1]<<16)+(plmmBitmap5[j+2]<<8)+plmmBitmap5[j+3];
}
}
}
void clrscreen(void)
{
unsigned int *pbuffer;
int i;
pbuffer =(U32*) frameBuffer256;
for(i = 0; i< (38400/4) ;i++)
{
pbuffer[i] = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -