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

📄 camera.h

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 H
📖 第 1 页 / 共 2 页
字号:

//Pos values
#define CAMIF_GPIO_CAMSER_POS       0x0

//Reset values
#define CAMIF_GPIO_CAMSER_RES_VAL   0x0

//FIFO pk counter
//================

#ifdef __ES20__
#define CAMIF_FIFO_REG_OFFSET    SET32BITS(0x18)
#else
#define CAMIF_FIFO_REG_OFFSET    SET32BITS(0x06)
#endif
#define CAMIF_FIFO_REG	         (CAMIF_BASE_ADDRESS + CAMIF_FIFO_REG_OFFSET )

//Mask values
#define CAMIF_FIFO_PC_MASK      0x0000007F
#define CAMIF_FIFO_REG_MASK     0x0000007F
     
     // building of CAMIF_FIFO_MASK (= 0x0000007F)
#define CAMIF_FIFO_MASK \
   (((2<<(CAMIF_FIFO_PC_NUMB-1))-1)<<CAMIF_FIFO_PC_POS)
 
#define CAMIF_FIFO_RES_VAL \
    (CAMIF_FIFO_PC_RES_VAL<<CAMIF_FIFO_PC_POS)  
   
//Length values
#define CAMIF_FIFO_PC_NUMB      7

//Pos values
#define CAMIF_FIFO_PC_POS       0x0

//Reset values
#define CAMIF_FIFO_PC_RES_VAL   0x00

// cam external clock value
#define        CAMIF_ExternalClock12MHz      0x00000000
#define	       CAMIF_ExternalClock6MHz       0x00000002
#define	       CAMIF_ExternalClock9_6MHz     0x00000004
#define	       CAMIF_ExternalClock24MHz      0x00000005
#define	       CAMIF_ExternalClock8MHz       0x00000006


// BURSTDATA0 Register (Read Only)
//=================================

//#define CAMIF_BURSTDATA0_REG_OFFSET         SET32BITS(0x20)
#define CAMIF_BURSTDATA0_REG_OFFSET         0x20

#define CAMIF_BURSTDATA0_REG	            (CAMIF_BASE_ADDRESS + CAMIF_BURSTDATA0_REG_OFFSET )


// BURSTDATA1 Register (Read Only)
//=================================

//#define CAMIF_BURSTDATA1_REG_OFFSET         SET32BITS(0x24)
#define CAMIF_BURSTDATA1_REG_OFFSET         0x24

#define CAMIF_BURSTDATA1_REG	            (CAMIF_BASE_ADDRESS + CAMIF_BURSTDATA1_REG_OFFSET )



// BURSTDATA2 Register (Read Only)
//=================================

//#define CAMIF_BURSTDATA2_REG_OFFSET         SET32BITS(0x28)
#define CAMIF_BURSTDATA2_REG_OFFSET         0x28

#define CAMIF_BURSTDATA2_REG	            (CAMIF_BASE_ADDRESS + CAMIF_BURSTDATA2_REG_OFFSET )



// BURSTDATA3 Register (Read Only)
//=================================

//#define CAMIF_BURSTDATA3_REG_OFFSET         SET32BITS(0x2C)
#define CAMIF_BURSTDATA3_REG_OFFSET         0x2C

#define CAMIF_BURSTDATA3_REG	            (CAMIF_BASE_ADDRESS + CAMIF_BURSTDATA3_REG_OFFSET )



typedef enum { CAMIF_PolarityClockRising = 0,
	       CAMIF_PolarityClockFalling = 1
	     } CAMIF_PolarityClock_T;


typedef enum { CAMIF_ExternalClockEnable = 1,
	       CAMIF_ExternalClockDisable = 0
	     } CAMIF_ExternalClockEnable_T;


typedef enum { CAMIF_Enable = 1,
	       CAMIF_Disable = 0
	     } CAMIF_Enable_T;


typedef enum { CAMIF_DPLLClockEnable = 1,
	       CAMIF_DPLLClockDisable = 0
	     } CAMIF_DPLLClockEnable_T;

typedef enum { CAMIF_LCLKClockEnable = 1,
	       CAMIF_LCLKClockDisable = 0
	     } CAMIF_LCLKClockEnable_T;

typedef enum { CAMIF_Synchronous = 0,
	       CAMIF_Asynchronous = 1
	     } CAMIF_Synchronous_T;


typedef enum { CAMIF_ImageCIF = 0,
	       CAMIF_ImageQCIF,
	       CAMIF_ImageVGA,
	       CAMIF_ImageQVGA
	     } CAMIF_ImageType_T;


typedef enum { CAMIF_Swap = 1,
	       CAMIF_NoSwap = 0
	     } CAMIF_SwapEnable_T;


typedef enum { CAMIF_VerticalSyncRisingEnable = 1,
	       CAMIF_VerticalSyncRisingDisable = 0
	     } CAMIF_VerticalSyncRisingEnable_T;


typedef enum { CAMIF_VerticalSyncFallingEnable = 1,
	       CAMIF_VerticalSyncFallingDisable = 0
	     } CAMIF_VerticalSyncFallingEnable_T;


typedef enum { CAMIF_HorizontalSyncRisingEnable = 1,
	       CAMIF_HorizontalSyncRisingDisable = 0
	     } CAMIF_HorizontalSyncRisingEnable_T;


typedef enum { CAMIF_HorizontalSyncFallingEnable = 1,
	       CAMIF_HorizontalSyncFallingDisable = 0
	     } CAMIF_HorizontalSyncFallingEnable_T;


typedef enum { CAMIF_DMAEnable = 1,
	       CAMIF_DMADisable = 0
	     } CAMIF_DMAEnable_T;


typedef enum { CAMIF_CPUIrqEnable = 1,
	       CAMIF_CPUIrqDisable = 0
	     } CAMIF_CPUIrqEnable_T;


typedef enum { CAMIF_FifoFullEnable = 1,
	       CAMIF_FifoFullDisable = 0
	     } CAMIF_FifoFullEnable_T;


typedef enum { CAMIF_GPIOEnable = 1,
	       CAMIF_GPIODisable = 0
	     } CAMIF_GPIOEnable_T;

//----------------------------------------------------
//-----------------------MACROS-----------------------
//----------------------------------------------------
//=================================================================================

//  All the followings are macro. They were used as they are faster than functions

//=================================================================================


//-------------------------------------------------------------------
// NAME        : FIFO_COUNTER
// DESCRIPTION : Returns the 7 bits of the FIFO word counter
// PARAMETERS  : None
// RETURN VALUE: Returns the 7 bits of the FIFO word counter
// LIMITATIONS : None
//-------------------------------------------------------------------
#define FIFO_COUNTER()                         (REG32(CAMIF_FIFO_REG) & CAMIF_FIFO_REG_MASK)
//-------------------------------------------------------------------
// NAME        : CAMIF_FIFO_FUNCTION_RESET
// DESCRIPTION : Reset the fifo functionnality (pointers,fifo,...)
//               FIFO function is unactiv until we set the functionnality
//               with CAMIF_FIFO_FUNCTION_SET
// PARAMETERS  : None
// RETURN VALUE: None
// LIMITATIONS : None
//-------------------------------------------------------------------

#define CAMIF_FIFO_FUNCTION_RESET()             REG32(CAMIF_MD_REG)  |= CAMIF_MD_RAZ_FIFO_MASK
          
//-------------------------------------------------------------------
// NAME        : CAMIF_FIFO_FUNCTION_SET
// DESCRIPTION : Set the fifo functionnality 
// PARAMETERS  : None
// RETURN VALUE: None
// LIMITATIONS : None
//-------------------------------------------------------------------

#define CAMIF_FIFO_FUNCTION_SET()             REG32(CAMIF_MD_REG)  &= ~CAMIF_MD_RAZ_FIFO_MASK
          

//----------------------------------------------------
//-----------------------FUNCTIONS--------------------
//----------------------------------------------------


//------------------------------------------------------------------
//NAME          : CAMIF_SetClockCtrlRegister
//DESCRIPTION   : Set Clock Control Register
//PARAMETERS    : All Clock Control Register bit fields
//RETURN VALUE  : None
//------------------------------------------------------------------
void  CAMIF_SetClockCtrlRegister(UWORD32 ExternalClock,
				 CAMIF_PolarityClock_T PolarityClock,
				 CAMIF_ExternalClockEnable_T ExternalClockEnable,
				 CAMIF_Enable_T ClockEnable,
				 CAMIF_LCLKClockEnable_T LCLKClockEnable,
				 UWORD32 CAMERA_IF_Base_Address);


//------------------------------------------------------------------
//NAME          : CAMIF_ReadInterruptStatusRegister
//DESCRIPTION   : Read Interrupt Status register
//PARAMETERS    : All Interrupt Status register bit fields
//RETURN VALUE  : None
//------------------------------------------------------------------
void  CAMIF_ReadInterruptStatusRegister(BOOL * const VerticalSynchRising,
					BOOL * const VerticalSynchFalling,
					BOOL * const HorizontalSynchRising,
					BOOL * const HorizontalSynchFalling,
					BOOL * const FifoFull,
					BOOL * const CPUIrq,
					UWORD32 CAMERA_IF_Base_Address);


//------------------------------------------------------------------
//NAME          : CAMIF_SetModeRegister
//DESCRIPTION   : Set Mode Register
//PARAMETERS    : All Mode Register bit fields
//RETURN VALUE  : None
//------------------------------------------------------------------
void  CAMIF_SetModeRegister(CAMIF_SwapEnable_T SwapMode,
			    CAMIF_VerticalSyncRisingEnable_T VerticalSyncRisingEnable,
			    CAMIF_VerticalSyncFallingEnable_T VerticalSyncFallingEnable,
			    CAMIF_HorizontalSyncRisingEnable_T HorizontalSyncRisingEnable,
			    CAMIF_HorizontalSyncFallingEnable_T HorizontalSyncFallingEnable,
			    CAMIF_DMAEnable_T DMAEnable,
			    UWORD8 Threshold,
			    CAMIF_CPUIrqEnable_T CPUIrqEnable,
			    CAMIF_FifoFullEnable_T FifoFullEnable,
			    UWORD32 CAMERA_IF_Base_Address);


//------------------------------------------------------------------
//NAME          : CAMIF_ReadStatusRegister
//DESCRIPTION   : Read Status register
//PARAMETERS    : All Status register bit fields
//RETURN VALUE  : None
//------------------------------------------------------------------
void  CAMIF_ReadStatusRegister(BOOL * const VerticalSynch,
			       BOOL * const HorizontalSynch);


//------------------------------------------------------------------
//NAME          : CAMIF_ReadDataRegister
//DESCRIPTION   : Read Data register
//PARAMETERS    : None
//RETURN VALUE  : Image data from Fifo
//------------------------------------------------------------------
UWORD32  CAMIF_ReadDataRegister(void);


//------------------------------------------------------------------
//NAME          : CAMIF_SetGpioRegister
//DESCRIPTION   : Set GPIO register
//PARAMETERS    : All GPIO register bit fields
//RETURN VALUE  : None
//------------------------------------------------------------------
void  CAMIF_SetGpioRegister(CAMIF_GPIOEnable_T GPIOEnable);


//------------------------------------------------------------------
//NAME          : CAMIF_SetPeakCounterRegister
//DESCRIPTION   : Set Peak Counter register
//PARAMETERS    : All Peak Counter register bit fields
//RETURN VALUE  : None
//------------------------------------------------------------------
void  CAMIF_SetPeakCounterRegister(UWORD8 PeakCounter);


//------------------------------------------------------------------
//NAME          : CAMIF_DisableIf
//DESCRIPTION   : Disable Output clock (ExClk) of Camera Interface
//PARAMETERS    : None
//RETURN VALUE  : None
//------------------------------------------------------------------
void  CAMIF_DisableIf(UWORD32 CAMERA_IF_Base_Address);

//------------------------------------------------------------------
//NAME          : CAMIF_DisableLClk
//DESCRIPTION   : Disable incoming cam lclk of Camera Interface
//PARAMETERS    : None
//RETURN VALUE  : None
//------------------------------------------------------------------
void  CAMIF_DisableLClk(void);


void CAM_AssertReset();
void CAM_DeassertReset();
void CAM_EnableExclk();
void CAM_DisableExclk();
void CAM_EnableIntToStart();
void CAM_DisableIntToStart();
void CAM_EnableIntToReadFifo();
void CAM_DisableIntToReadFifo();
void CAM_CleanFifo();
WORD32 CAM_ReadPeakCounter();
WORD32 CAM_ReadStatus();
void CAM_EnableIntToDebug();

void CAM_DisableIntToDebug();
void CAM_EnableIntDma();
void CAM_DisableIntDma();
void CAMIF_EnableLClk(void);

// FIFO reset control
void CAMIF_NoRazFifo();
void CAMIF_RazFifo();


#endif

⌨️ 快捷键说明

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