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

📄 omap3_timer.h

📁 Windows CE 6.0 BSP for the Beagle Board.
💻 H
字号:
//
// Copyright (c) Special Computing.  All rights reserved. 
// Copyright (c) Microsoft Corporation.  All rights reserved.
// Copyright (c) Texas Instruments Corporation.  All rights reserved. 
//
//------------------------------------------------------------------------------
//
//  Header:  omap3_timer.h
//
//  This header file is comprised of timer module register details defined as 
//  structures and macros for configuring and controlling the general purpose
//  timers.
//
//------------------------------------------------------------------------------
#ifndef __OMAP3_TIMER_H
#define __OMAP3_TIMER_H

#if __cplusplus
extern "C" {
#endif

//------------------------------------------------------------------------------
// Base Address :	OMAP3_GPTIMER1_REGS_PA	 
//					OMAP3_GPTIMER2_REGS_PA	 
//					OMAP3_GPTIMER3_REGS_PA	 
//					OMAP3_GPTIMER4_REGS_PA	 
//					OMAP3_GPTIMER5_REGS_PA	
//					OMAP3_GPTIMER6_REGS_PA	
//					OMAP3_GPTIMER7_REGS_PA	
//					OMAP3_GPTIMER8_REGS_PA	
//					OMAP3_GPTIMER9_REGS_PA	
//					OMAP3_GPTIMER10_REGS_PA
//					OMAP3_GPTIMER11_REGS_PA
//					OMAP3_GPTIMER12_REGS_PA
//
// Note: Not all of the following registers are available to all timers.
//------------------------------------------------------------------------------

typedef volatile struct {
	UINT32 ulTIDR;						// offset 0x00, Identification register
	UINT32 ulRESERVED_0x4;
	UINT32 ulRESERVED_0x8;
	UINT32 ulRESERVED_0xC;
	UINT32 ulTIOCP;						// offset 0x10, L4 I/F config reg
	UINT32 ulTISTAT;   					// offset 0x14, Timer sys status reg
	UINT32 ulTISR;     					// offset 0x18, Timer interrupt stat
	UINT32 ulTIER;     					// offset 0x1C, Timer interrupt enable
	UINT32 ulTWER;     					// offset 0x20, Timer wake-up enable
	UINT32 ulTCLR;     					// offset 0x24, Timer control
	UINT32 ulTCRR;     					// offset 0x28, Timer counter register
	UINT32 ulTLDR;     					// offset 0x2C, Timer load register
	UINT32 ulTTGR;     					// offset 0x30, Timer trigger register
	UINT32 ulTWPS;     					// offset 0x34, Timer write posted stat
	UINT32 ulTMAR;     					// offset 0x38, Timer match value reg
	UINT32 ulTCAR1;    					// offset 0x3C, Timer counter1 capt reg
	UINT32 ulTSICR;    					// offset 0x40, L4 I/F sync ctrl reg
	UINT32 ulTCAR2;    					// offset 0x44, Timer counter2 capt reg
	UINT32 ulTPIR;    					// offset 0x48,
	UINT32 ulTNIR;    					// offset 0x4C,
	UINT32 ulTCVR;    					// offset 0x50,
	UINT32 ulTOCR;    					// offset 0x54,
	UINT32 ulTOWR;    					// offset 0x58,
}
OMAP3_GPTIMER_REGS;



//------------------------------------------------------------------------------
// Base Address : OMAP3_TIMER32K_REGS_PA
//------------------------------------------------------------------------------

typedef volatile struct {
	UINT32 ulRESERVED_0x00;				//offset 0x00,
	UINT32 ulSYSCONFIG;					//offset 0x04,
	UINT32 ulRESERVED_0x08;				//offset 0x08,
	UINT32 ulRESERVED_0x0C;				//offset 0x0C,
	UINT32 ulCR;						//offset 0x10,
}
OMAP3_TIMER32K_REGS;

#define OMAP3_GPTIMER_COUNTS_PER_1MS	(32768/1000)

//------------------------------------------------------------------------------

#define TIOCP_EMUFREE       	(1 << 5)
#define TIOCP_FORCE_IDLE    	(0 << 3)
#define TIOCP_NO_IDLE       	(1 << 3)
#define TIOCP_SMART_IDLE    	(2 << 3)
#define TIOCP_ENAWAKEUP     	(1 << 2)
#define TIOCP_RESET         	(1 << 1)
#define TIOCP_AUTOIDLE      	(1 << 0)

//------------------------------------------------------------------------------

#define TISTAT_RESETDONE		(1 << 0)

//------------------------------------------------------------------------------

#define TIER_CAPTURE        	(1 << 2)
#define TIER_OVERFLOW       	(1 << 1)
#define TIER_MATCH          	(1 << 0)

//------------------------------------------------------------------------------

#define TWER_CAPTURE        	(1 << 2)
#define TWER_OVERFLOW       	(1 << 1)
#define TWER_MATCH          	(1 << 0)

//------------------------------------------------------------------------------

#define TCLR_PT             	(1 << 12)
#define TCLR_TRG_OVERFLOWMATCH  (2 << 10)
#define TCLR_TRG_OVERFLOW   	(1 << 10)
#define TCLR_CE             	(1 << 6)
#define TCLR_PRE            	(1 << 5)
#define TCLR_AR             	(1 << 1)
#define TCLR_ST             	(1 << 0)

//------------------------------------------------------------------------------

#define TWPS_TMAR           	(1 << 4)
#define TWPS_TTGR           	(1 << 3)
#define TWPS_TLDR           	(1 << 2)
#define TWPS_TCRR           	(1 << 1)
#define TWPS_TCLR           	(1 << 0)

//------------------------------------------------------------------------------

#define TSICR_POSTED        	(1 << 2)
#define TSICR_SFT           	(1 << 1)

//------------------------------------------------------------------------------

#define TISR_TCAR           	(1 << 2)
#define TISR_OVERFLOW         	(1 << 1)
#define TISR_MAT            	(1 << 0)

//------------------------------------------------------------------------------

#define TLCR_GPO_CFG        	(1 << 14)
#define TLCR_CAPT_MODE      	(1 << 13)
#define TLCR_PT             	(1 << 12)
#define TLCR_SCPWM          	(1 << 7)
#define TLCR_CE             	(1 << 6)
#define TLCR_PRE            	(1 << 5)
#define TLCR_AR             	(1 << 1)
#define TLCR_ST             	(1 << 0)

#define TLCR_TRG_SHIFT      	(10)
#define TLCR_TCM_SHIFT      	(8)
#define TLCR_PTV_SHIFT      	(2)

//------------------------------------------------------------------------------


#if __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

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