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

📄 hal_camera.c

📁 一款SmartPhone的驱动代码
💻 C
📖 第 1 页 / 共 2 页
字号:
; Function:	YUV Data Type Get
; Input:	None
; Output:	YUV Data Type
; Format:	CamYUVDataType YUVDataTypeGet( void )
;***************************************************************************/
CamYUVDataType YUVDataTypeGet( void )
{
	unsigned short camModeSetting = halReadReg16( REG0110_CAMERA_MODE_SETTING );

	CamYUVDataType yuvDataType = (CamYUVDataType)((camModeSetting >> 8) & 0x0003);
	return ( yuvDataType );
}

/****************************************************************************
; Function:	sets active pulldown for given camera 
; Input:	CameraNo	
;		enable		TRUE means interupt sequence occured
;				FALSE means interrupt sequenced NOT occured
; Output:	None
; Format:	void CamActvPulldownEnSet( CamDef CameraNum , BOOL enable )
;****************************************************************************/
void CamActvPulldownEnSet( CamDef CameraNum , BOOL enable )
{
	unsigned short camModeSetting = halReadReg16( REG0110_CAMERA_MODE_SETTING );

	camModeSetting &= (~(0x0004 << CameraNum));
	camModeSetting |= (unsigned short)(enable << (2 + CameraNum));
	halWriteReg16( REG0110_CAMERA_MODE_SETTING, camModeSetting );
}

/****************************************************************************
; Function:	determines if active pulldown is enabled
; Input:	camera Number
; Output:	TRUE means interupt sequence occured
;		FALSE means interrupt sequenced NOT occured
; Format:	BOOL CamActvPulldownEnGet( CamDef CameraNum )
;****************************************************************************/
BOOL CamActvPulldownEnGet( CamDef CameraNum )
{
	unsigned short camModeSetting = halReadReg16( REG0110_CAMERA_MODE_SETTING );

	BOOL enable = (BOOL)((camModeSetting >> (2 + CameraNum)) & TRUE);
	return ( enable );
}

/***************************************************************************
; Function:     Camera Mode Select Set
; Input:     	CamModeSel
; Output:    	None
; Format:    	void CamModeSelSet( CamModeSel camModeSel )
;***************************************************************************/
void CamModeSelSet( CamModeSel camModeSel )
{
	unsigned short camModeSetting = halReadReg16( REG0110_CAMERA_MODE_SETTING );
	
	camModeSetting &= (~0x0006);
	camModeSetting |= (unsigned short)camModeSel;
	halWriteReg16( REG0110_CAMERA_MODE_SETTING, camModeSetting );
}

/***************************************************************************
; Function:	determines Cam Mode 
; Input:	None
; Output:	Camera Mode Select mode 
; Format:	CamModeSel CamModeSelGet( void )
;***************************************************************************/
CamModeSel CamModeSelGet( void )
{
	unsigned short camModeSetting = halReadReg16( REG0110_CAMERA_MODE_SETTING );
	
	CamModeSel camModeSel = (CamModeSel)(camModeSetting & 0x0006);
	return ( camModeSel );
}



/****************************************************************************
; Function:	sets status of camera clock output
; Input:	ClkOut		TRUE means Clk Out End
; Output:	None
; Format:	void CamClkOutSet( BOOL clkOut )
;****************************************************************************/
void CamClkOutSet( BOOL clkOut )
{
	unsigned short  camModeSetting = halReadReg16( REG0110_CAMERA_MODE_SETTING );
	BOOL prevClk = (BOOL)(camModeSetting & TRUE);
	
	camModeSetting &= (~TRUE);
	camModeSetting |= (unsigned short )(clkOut & TRUE);
	halWriteReg16( REG0110_CAMERA_MODE_SETTING, camModeSetting );
	if ( !clkOut )
	{
		if( prevClk )
		{
			;//halDelayUS( 70000 );
		}
	}
}


/****************************************************************************
; Function:	determines status of camera clock output
; Input:	None
; Output:	TRUE means clock output is enabled
;		FALSE means clock output is disabled after 1 frame period finished.
; Format:	BOOL CamClkOutGet( void )
;*****************************************************************************/
BOOL CamClkOutGet( void )
{
	unsigned short  camModeSetting = halReadReg16( REG0110_CAMERA_MODE_SETTING );

	BOOL enable = (BOOL)(camModeSetting & TRUE);
	return ( enable );
}





/***************************************************************************
; Function:	sets frame sampling control as degree of reduction
; Input:	Frame Samp Ctl
; Output:	None
; Format:	void CamFrameSampCtlSet( CamFrameSampCtl frameSampCtl )
;***************************************************************************/
void CamFrameSampCtlSet( FrameSampCtl frameSampCtl )
{
}

/***************************************************************************
; Function:	determines frame sampling control as degree of reduction
; Input:	None
; Output:	frame Samp Ctl
; Format:	CamFrameSampCtl CamFrameSampCtlGet( void )
;***************************************************************************/
FrameSampCtl CamFrameSampCtlGet( void )
{
	FrameSampCtl frameSampCtl = (FrameSampCtl)0;
	return ( frameSampCtl );
}

/****************************************************************************
; Function:	sets interrupt asserted on VSYNC active or inactive
; Input:	vSyncActv		TRUE means interrupt asserted when vsync active
;					FALSE means interrupt asserted when vsync inactive
; Output:	None
; Format:	void CamImageCapIntCtlSet( BOOL vSyncActv )
;***************************************************************************/
void CamImageCapIntCtlSet( BOOL vSyncActv )
{
	unsigned short cameraFrameSetting = halReadReg16( REG0112_CAMERA_FRAME_SETTING );
	
	cameraFrameSetting &= (~0x0002);
	cameraFrameSetting |= (unsigned short)(vSyncActv << 1);
	halWriteReg16( REG0112_CAMERA_FRAME_SETTING, cameraFrameSetting );
}

/****************************************************************************
; Function:	determines if interrupt is asserted on VSYNC active or inactive
; Input:	None
; Output:	TRUE means interrupt asserted when VSYNC active
;			FALSE means interrupt asserted when VSYNC inactive
; Format:	BOOL CamImageCapIntCtlGet( void )
****************************************************************************/
BOOL CamImageCapIntCtlGet( void )
{
	unsigned short cameraFrameSetting = halReadReg16( REG0112_CAMERA_FRAME_SETTING );
	
	BOOL vSyncActv = (BOOL)((cameraFrameSetting >> 1) & TRUE);
	return ( vSyncActv );
}


/***************************************************************************
; Function:	sets image capture interrupt as enabled or disabled
; Input:	enable	TRUE means Image Cap Int enabled
;			FALSE means Image Cap Int disabled
; Output:	None
; Format:	BOOL CamImageCapIntCtlGet( void )
;***************************************************************************/
void CamImageCapIntEnSet( BOOL enable )
{
	unsigned short cameraFrameSetting = halReadReg16( REG0112_CAMERA_FRAME_SETTING );
	
	cameraFrameSetting &= (~TRUE);
	cameraFrameSetting |= (unsigned short )(enable & TRUE);
	halWriteReg16( REG0112_CAMERA_FRAME_SETTING, cameraFrameSetting );
}


/***************************************************************************
; Function:	determines if image capture interrupt is enabled
; Input:	None
; Output:	TRUE means Image Cap Int enabled
;		FALSE means Image Cap Int disabled
; Format:	BOOL CamImageCapIntEnGet( void )
;***************************************************************************/
BOOL CamImageCapIntEnGet( void )
{
	unsigned short cameraFrameSetting = halReadReg16( REG0112_CAMERA_FRAME_SETTING );
	
	BOOL enable = (BOOL)(cameraFrameSetting & TRUE);
	return ( enable );
}

/***************************************************************************
; Function:	Software Reset for Camera
; Input:	None
; Output:	None
; Format:	void CamSoftReset( void )
;***************************************************************************/
void CamSoftReset( void )
{
	unsigned short camCtl = halReadReg16( REG0114_CAMERA_CTRL );
	
	camCtl |= 0x0001;
	halWriteReg16( REG0114_CAMERA_CTRL, camCtl );
}


/***************************************************************************
; Function:	StroCapDelayCtlGet
; Input:	None
; Output:	number of frames delay
; Format:	unsigned char StroCapDelayCtlGet( void )
;***************************************************************************/
unsigned char StroCapDelayCtlGet( void )
{
	return 0;	
}

/***************************************************************************
; Function:	prvJpegStroCapDelayCtlSet
; Input:	capDelayCtl		number of frames delay
; Output:	None
; Format:	void StroCapDelayCtlSet( unsigned char  capDelayCtl )
;***************************************************************************/
void StroCapDelayCtlSet( unsigned char  capDelayCtl )
{
	
}

/***************************************************************************
; Function:	prvJpegStroPulseHiGet
; Input:	n/a
; Output:	FALSE means pulse is active low
;		TRUE means pulse is active high
; Format:	BOOL StroPulseHiGet( void )
;***************************************************************************/
BOOL StroPulseHiGet( void )
{
	return TRUE;
}

/***************************************************************************
; Function:	StroPulseHiSet
; Input:	stroPulseHi		FALSE means pulse is active low
;					TRUE means pulse is active high
; Output:	n/a
; Format:	void StroPulseHiSet( BOOL stroPulseHi )
;***************************************************************************/
void StroPulseHiSet( BOOL stroPulseHi )
{
	
}

/***************************************************************************
; Function:	StroEnGet
; Input:	n/a
; Output:	TRUE means stro control signal enabled
;		FALSE means stro control signal disabled
; Format:	BOOL StroEnGet( void )
;***************************************************************************/
BOOL StroEnGet( void )
{
	BOOL enable = FALSE;
	return ( enable );
}

/***************************************************************************
; Function:	StroEnSet
; Input:	enable	TRUE means stro control signal enabled
;			FALSE means stro control signal disabled
; Output:	n/a
; Format:	void StroEnSet( BOOL enable )
;***************************************************************************/
void StroEnSet( BOOL enable )
{
}

/***************************************************************************
; Function:	StroLineDelayGet
; Input:	n/a
; Output:	stroLineDelayTiming
; Format:	unsigned short StroLineDelayGet( void )
;***************************************************************************/
unsigned short StroLineDelayGet( void )
{
	unsigned short stroLineDelay=0;
	return ( stroLineDelay );
}

/***************************************************************************
; Function:	StroLineDelaySet
; Input:	stroLineDelayTiming
; Output:	n/a
; Format:	void StroLineDelaySet(unsigned short stroLineDelay )
;***************************************************************************/
void StroLineDelaySet(unsigned short stroLineDelay )
{

}

/***************************************************************************
; Function:	StroPulseWidthGet
; Input:	n/a
; Output:	stroPulseWidthSetting
; Format:	unsigned short StroPulseWidthGet( void )
;***************************************************************************/
unsigned short StroPulseWidthGet( void )
{
	unsigned short stroPulseWidth = 0;
	return ( stroPulseWidth );
}

/***************************************************************************
; Function:	StroPulseWidthSet
; Input:	stroPulseWidth
; Output:	n/a
; Format:	unsigned short StroPulseWidthGet( void )
;***************************************************************************/
void StroPulseWidthSet( unsigned short stroPulseWidth )
{
	
}

⌨️ 快捷键说明

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