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

📄 gpt_priv.h

📁 Microsoft WinCE 6.0 BSP FINAL release source code for use with the i.MX27ADS TO2 WCE600_FINAL_MX27_S
💻 H
字号:
//------------------------------------------------------------------------------
//
//  Copyright (C) 2004, Motorola Inc. All Rights Reserved
//
//------------------------------------------------------------------------------
//
//  Copyright (C) 2004-2006, Freescale Semiconductor, Inc. All Rights Reserved.
//  THIS SOURCE CODE, AND ITS USE AND DISTRIBUTION, IS SUBJECT TO THE TERMS
//  AND CONDITIONS OF THE APPLICABLE LICENSE AGREEMENT
//
//------------------------------------------------------------------------------
//
//  File:  gpt_priv.h
//
//  Private definitions for General Purpose Timer Driver
//
//------------------------------------------------------------------------------

#ifndef __GPT_PRIV_H__
#define __GPT_PRIV_H__

//------------------------------------------------------------------------------
// Defines
//------------------------------------------------------------------------------

// Here are the names of the values stored in the registry

#define GPT_REG_IOBASE_VAL_NAME TEXT("IoBase")
#define GPT_REG_IOBASE_VAL_LEN  sizeof( DWORD )

#define GPT_REG_IOLEN_VAL_NAME TEXT("IoLen")
#define GPT_REG_IOLEN_VAL_LEN  sizeof( DWORD )

#define GPT_REG_IRQ_VAL_NAME TEXT("IRQ")
#define GPT_REG_IRQ_VAL_LEN  sizeof( DWORD )

#define GPT_FUNCTION_ENTRY() \
    DEBUGMSG(ZONE_FUNCTION, (TEXT("++%s\r\n"), __WFUNCTION__))
#define GPT_FUNCTION_EXIT() \
    DEBUGMSG(ZONE_FUNCTION, (TEXT("--%s\r\n"), __WFUNCTION__))

#ifdef DEBUG
// Debug zone bit positions
#define ZONEID_INIT       0
#define ZONEID_DEINIT     1
#define ZONEID_IOCTL      2

#define ZONEID_INFO       12
#define ZONEID_FUNCTION   13
#define ZONEID_WARN       14
#define ZONEID_ERROR      15

// Debug zone masks
#define ZONEMASK_INIT     (1<<ZONEID_INIT)
#define ZONEMASK_DEINIT   (1<<ZONEID_DEINIT)
#define ZONEMASK_IOCTL    (1<<ZONEID_IOCTL)

#define ZONEMASK_INFO     (1<<ZONEID_INFO)
#define ZONEMASK_FUNCTION (1<<ZONEID_FUNCTION)
#define ZONEMASK_WARN     (1<<ZONEID_WARN)
#define ZONEMASK_ERROR    (1<<ZONEID_ERROR)

// Debug zone args to DEBUGMSG
#define ZONE_INIT         DEBUGZONE(ZONEID_INIT)
#define ZONE_DEINIT       DEBUGZONE(ZONEID_DEINIT)
#define ZONE_IOCTL        DEBUGZONE(ZONEID_IOCTL)

#define ZONE_INFO         DEBUGZONE(ZONEID_INFO)
#define ZONE_FUNCTION     DEBUGZONE(ZONEID_FUNCTION)
#define ZONE_WARN         DEBUGZONE(ZONEID_WARN)
#define ZONE_ERROR        DEBUGZONE(ZONEID_ERROR)
#endif


class gptClass {
public:
	gptClass(){};
	~gptClass(void){};

	BOOL GptInitialize(DWORD dwIOBase, DWORD dwIOLen, DWORD dwIRQ);
	void GptRelease();
	
	BOOL GptTimerCreateEvent(LPTSTR eventString);
	BOOL GptTimerReleaseEvent(LPTSTR eventString);

	BOOL GptStartTimer(void);
	void GptStopTimer(void);

	void GptEnableTimerInterrupt(void);
	void GptDisableTimerInterrupt(void);
	void GptClearInterruptStatus(void);

	BOOL GptSetTimerDelay(PGPT_TIMER_SET_PKT);
	
	DWORD  m_dwIOBase;

private:
	PCSP_GPT_REGS m_pGPT;
	HANDLE m_hGptIntrEvent;
	HANDLE m_hTimerEvent;
	HANDLE m_hTimerThread;
	DWORD  m_gptIntr;
	LPCTSTR m_TimerEventString;
	CRITICAL_SECTION m_GptCS;

private:
	void GptStatus(void);
	void GptRegInit();
	void GptISRLoop(UINT32 timeout);
	static void GptIntrThread(LPVOID lpParameter);
	
};



#endif   // __GPT_PRIV_H__

⌨️ 快捷键说明

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