📄 hal_camera.c
字号:
; 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 + -