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

📄 main.c

📁 基于s3c2440的摄像头和lcd接口的底层代码
💻 C
字号:
#include "2440addr.h"

#define MVAL		(13)
#define MVAL_USED 	(0)		//0=each frame   1=rate by MVAL
#define INVVDEN		(1)		//0=normal       1=inverted
#define BSWP		(0)		//Byte swap control
#define HWSWP		(1)		//Half word swap control

#define M5D(n) ((n) & 0x1fffff)	// To get lower 21bits

#define LCD_XSIZE_TFT 	(320)	
#define LCD_YSIZE_TFT 	(240)

#define SCR_XSIZE_TFT 	(320)
#define SCR_YSIZE_TFT 	(240)

#define HOZVAL_TFT	(LCD_XSIZE_TFT-1)
#define LINEVAL_TFT	(LCD_YSIZE_TFT-1)

#define VBPD		(14)		//垂直同步信号的后肩
#define VFPD		(11)		//垂直同步信号的前肩
#define VSPW		(2)		//垂直同步信号的脉宽

#define HBPD		(37)		//水平同步信号的后肩
#define HFPD		(19)		//水平同步信号的前肩
#define HSPW		(29)		//水平同步信号的脉宽
#define CLKVAL_TFT	(7) 	

volatile static unsigned short LCD_BUFFER_CAM[SCR_YSIZE_TFT][SCR_XSIZE_TFT];

void CamInit(void)
{
    rCIGCTRL  |= (1<<26);
    rCIWDOFST = 0;
    rCISRCFMT = (1<<31)|(0<<30)|(0<<29)|(640<<16)|(0<<15)|(0<<14)|(480);
    
    rCIPRCLRSA1 = (unsigned int)LCD_BUFFER_CAM;
	rCIPRCLRSA2 = (unsigned int)LCD_BUFFER_CAM;
	rCIPRCLRSA3 = (unsigned int)LCD_BUFFER_CAM;
	rCIPRCLRSA4 = (unsigned int)LCD_BUFFER_CAM;
		
	rCIPRTRGFMT     = (320<<16)|(0<<14)|240;
	rCIPRCTRL       = (16<<19)|(16<<14);
	rCIPRSCPRERATIO = (8<<28)|(2<<16)|2;
	rCIPRSCPREDST   = (320<<16)|240;
	rCIPRSCCTRL     = (1<<31)|(0<<30)|(0<<29)|(0<<28)|(256<<16)|256;
	rCIPRTAREA      = 320*240;
}		

static void Lcd_Init(void)
{
    rGPCUP  = 0x00000000;
	rGPCCON = 0xaaaa02a9; 
	 
    rGPDUP  = 0x00000000;
    rGPDCON=0xaaaaaaaa;

	rLCDCON1=(CLKVAL_TFT<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;

	rLCDCON2=(VBPD<<24)|(LINEVAL_TFT<<14)|(VFPD<<6)|(VSPW);
	rLCDCON3=(HBPD<<19)|(HOZVAL_TFT<<8)|(HFPD);
    rLCDCON4=HSPW;
    rLCDCON5=(1<<11)|(1<<10)|(1<<9)|(1<<8)|(0<<7)|(0<<6)|(1<<3)|(BSWP<<1)|(HWSWP);

	rLCDSADDR1=(((unsigned int)LCD_BUFFER_CAM>>22)<<21)|M5D((unsigned int)LCD_BUFFER_CAM>>1);
	rLCDSADDR2=M5D(((unsigned int)LCD_BUFFER_CAM+(SCR_XSIZE_TFT*LCD_YSIZE_TFT*2))>>1 );
	rLCDSADDR3=(((SCR_XSIZE_TFT-LCD_XSIZE_TFT)/1)<<11)|(LCD_XSIZE_TFT/1);
	rLCDINTMSK|=(3); 
    rTCONSEL &= (~7) ;
	rTPAL=0;
    
    rLCDCON1|=1;
}

void Main(void)
{
	CamReset();
	CamPortSet();	

    Test_OV9650();

    Lcd_Init() ;
    CamInit();
    
    rCIPRSCCTRL |= (1<<15);
    rCIIMGCPT |= (1<<31)|(1<<29);
}



⌨️ 快捷键说明

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