📄 spidriver.h
字号:
#ifndef SPI_DRIVER_H__ // {
#define SPI_DRIVER_H__
#include "xllp_ssp.h"
#include "bulverde_clkmgr.h"
#include "bulverde_gpio.h"
enum SPI_DRIVER_FLAGS
{
ALLOW_ISR = 1,
DEBUG = 2
};
#define THREAD_PRIORITY_SPI_IST 100 // Same as USB
#define THREAD_PRIORITY_SPI_XFER (THREAD_PRIORITY_SPI_IST+2)
// higher than serial port.
#include "oalintr.h"
#ifndef SYSINTR_SSP3
#define SYSINTR_SSP3 (SYSINTR_FIRMWARE+25) // Need to get this from Johnson
#endif
//struct GPS_GPIO::BULVERDE_GPIO_REG;
//struct SSP::XLLP_SSP_REGS;
typedef struct
{
volatile XLLP_GPIO_T* v_pGPIORegs;
volatile XLLP_SSP_REGS* v_pSPIRegs;
volatile XLLP_CLKMGR_T* v_pClockRegs;
HANDLE mIsrHandle;
HANDLE mhIntr;
HANDLE mhGpsEvent;
HANDLE mhRxDone;
DWORD mIsrThreadID;
BOOL mbSignaledPower;
BOOL mbClosed;
UINT8 mShutDownData[16];
DWORD mShutDownCount;
DWORD mFlags;
BOOL mbDebug;
BOOL mbIsrAllow;
bool intackNeeded;
DWORD interruptTime_;
DWORD openTime_;
DWORD closeTime_;
// Constructor
void ctor(DWORD dwContext)
{
mFlags = dwContext;
// mShutDownCount = 0;
// mbClosed = false;
// mbSignaledPower = false;
// mbDebug = false;
// mbIsrAllow = false;
if (mFlags & ALLOW_ISR) mbIsrAllow = true;
if (mFlags & DEBUG ) mbDebug = true;
};
} SPI_DEVICE_CONTEXT;
//-----------------------------------------------------------------------------
//
// getSpiDeviceContext()
//
// Convert a hDeviceContext into a SPI device driver structure pointer.
//
//-----------------------------------------------------------------------------
inline SPI_DEVICE_CONTEXT* getSpiDeviceContext(DWORD hDeviceContext)
{
return reinterpret_cast<SPI_DEVICE_CONTEXT*> (hDeviceContext);
}
#endif // SPI_DRIVER_H__ }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -