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

📄 lcd.c

📁 可以兼容MS-DOS的文件系统和指令的S3C2410平台的DOS部分源代码,加以修改可以使用在S3C2440 S3C44B0等ARM7、ARM9上
💻 C
字号:
/*************************************Seekfor Embedded DOS v1.0***************************************************
 ******                   ***          *****                                    ******     ****     ****** v1.0
**   **                    **         **  **                                     **  **   **  **   **   ** 
**   **                    **         **                                         **   ** **    **  **   ** 
**                         **         **                                         **   ** **    **  **      
 **       *****    *****   ** ****  *******   *****  ********            *****   **   ** **    **   **     
  ***    **   **  **   **  ** **      **     **   **   *** **           **   **  **   ** **    **    ***   
    **   *******  *******  ****       **     **   **   **               *******  **   ** **    **      **  
     **  **       **       *****      **     **   **   **               **       **   ** **    **       ** 
**   **  **       **       ** **      **     **   **   **               **       **   ** **    **  **   ** 
**   **  **   **  **   **  **  **     **     **   **   **               **   **  **  **   **  **   **   ** 
******    *****    *****  ********  ******    *****  ******              *****  ******     ****    ******  
<1)基本描述
	Seekfor Embedded DOS v1.0是嵌入式的一个类DOS操作系统,支持FAT16/FAT32.
<2)文件描述
	文件名:lcd.c
	功能:LCD驱动
<3>如需更新版本软件,请联系:
	QQ:82054357
	Mail:Seek_for@163.com
	MSN:sfrad32@hotmail.com
**************************************************************************************************************/
#ifndef __LCD_C__
#define __LCD_C__
#include "dos.h"
#if(SUPPORT_GRAPHICS)


static int disp_buffer[LCD_HEIGHT][LCD_WIDTH];

static int get_pixel(int x, int y)
{
	return disp_buffer[y][x];
}

static void put_pixel(int x,int y,int color)
{
	if(y>=0&&x>=0&&y<LCD_HEIGHT&&x<LCD_WIDTH)
		disp_buffer[y][x]=color;
}


#define VBPD_240320  ((2-1)&0xff)
#define VFPD_240320  ((3-1)&0xff)
#define VSPW_240320  ((2-1) &0x3f)
#define HBPD_240320  ((7*2-1)&0x7f)
#define HFPD_240320  ((3*2-1)&0xff)
#define HSPW_240320  ((4-1)&0xff)
#define MVAL  (13)
#define MVAL_USED  (1)
#define M5D(n) ((n) & 0x1fffff)
#define HOZVAL_TFT_240320 (239)
#define LINEVAL_TFT_240320 (319)
#define CLKVAL 8/*原来使用4就出现本文现象,改为8后一切正常*/

void LCD_init()
{
   rLCDCON1=(CLKVAL<<8)|(MVAL_USED<<7)|(3<<5)|(13<<1);
   rLCDCON2=(VBPD_240320<<24)|(LINEVAL_TFT_240320<<14)|(VFPD_240320<<6)|(VSPW_240320);
   rLCDCON3=(HBPD_240320<<19)|(HOZVAL_TFT_240320<<8)|(HFPD_240320);
   rLCDCON4=(MVAL<<8)|(HSPW_240320);
   rLCDCON5=(1<<11)|(1<<9)|(1<<8);
   rLCDSADDR1=(((unsigned int)disp_buffer>>22)<<21)|M5D((unsigned int)disp_buffer>>1);
   rLCDSADDR2=M5D(((unsigned int)disp_buffer+(240*320*4))>>1);
   rLCDSADDR3=0x00; 
   rLCDINTMSK|=(3);
   rLPCSEL&=(~7);
   rTPAL=0;
   initgraph((void*)get_pixel,(void*)put_pixel,(LCD_WIDTH+(LCD_HEIGHT<<16)));
   settextstyle(0,1,1);
   setcolor(HW_RGB(63,63,63));
   setbkcolor(HW_RGB(0,0,0));	
   cleardevice();
   rLCDCON1|=0x01;
}




#endif
#endif

⌨️ 快捷键说明

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