⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 44blcd.c~

📁 这是在linux下
💻 C~
字号:
#include <string.h>
#include <malloc.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/clock.h"
#include "../inc/plm.h"


void clrscreen(void);
void Lcd_MonoInit(void);void displaylcd(void);void display(unsigned int Code,unsigned char line,unsigned char xdot);

extern int hour,min,sec;

#define frameBuffer1   0xc400000

void LcdInit(void)
{
 
  Lcd_MonoInit();
  clrscreen();
  displaylcd();
  display(10,4,3);
  display(10,4,6);   
}

void Lcd_MonoInit(void)
{
    //160x240 1bit/1pixel LCD
    #define MVAL_USED 0

	rLCDCON1=(0)|(1<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_MONO<<12);
	    // disable,4B_SNGL_SCAN,WDLY=8clk,WLH=8clk,
	rLCDCON2=(LINEVAL)|(HOZVAL<<10)|(10<<21);  
	    //LINEBLANK=10 (without any calculation) 
	rLCDSADDR1= (0x0<<27) | ( ((U32)frameBuffer1>>22)<<21 ) | M5D((U32)frameBuffer1>>1);
	    // monochrome, LCDBANK, LCDBASEU
	rLCDSADDR2= M5D( (((U32)frameBuffer1+(SCR_XSIZE*LCD_YSIZE/8))>>1) ) | (MVAL<<21)|(1<<29);
	rLCDSADDR3= (LCD_XSIZE/16) | ( ((SCR_XSIZE-LCD_XSIZE)/16)<<9 );

	rLCDCON1=(1)|(1<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_MONO<<12);
	    // enable,4B_SNGL_SCAN,WDLY=8clk,WLH=8clk,
}

void clrscreen(void)
{
  int i,j;
	unsigned int *pbuffer;
	
	pbuffer =(U32*) frameBuffer1;
 	for (i=0;i<4800/4;i++)
       {
     		pbuffer[i] =0;} 	//(0x0FFFFFFFF);

}
void DisplayRtc(void)
{
     hour=rBCDHOUR;
     min=rBCDMIN;
     sec=rBCDSEC;
     display(hour>>4,4,1);
     display(hour&0xf,4,2);
     display(min>>4,4,4);
     display(min&0xf,4,5);
     display(sec>>4,4,7);
     display(sec&0xf,4,8);       
}

void display(unsigned int Code,unsigned char line,unsigned char xdot)
{
     unsigned short *pbuffer;
     unsigned char i;

     pbuffer =(U16*) frameBuffer1;  
    
    for (i=0;i<16;i++)
   {
     pbuffer[20*i+320*line+xdot]=((RTclock[Code].Data[i*2])+(RTclock[Code].Data[i*2+1]<<8));}	
}

void displaylcd(void)
{
     unsigned int *pbuffer,temp_data;
     int i;
     unsigned char *Buf;
    
    Buf= (unsigned char *)plm;
    pbuffer =(U32*) frameBuffer1;
    for(i = 0; i< (4800/4) ;i++)
    {
       temp_data = (Buf[i*4+3] << 24) + (Buf[i*4+2] << 16) + (Buf[i*4+1] << 8) +(Buf[i*4]);
        pbuffer[i] = ~temp_data;
	Delay(10);}
}                                                
                                              

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -