📄 pwm.h
字号:
//-----------------------------------------------------------------------------
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
// Copyright (c) 2003 Silicon Motion, Inc.
//
// Module Name: pwm.cpp
//
// Abstract: Pulse Width Modulation API
//
//-----------------------------------------------------------------------------
#ifndef _PWM_H_
#define _PWM_H_
///////////////////////////////////////////////////////////////////////////////
// PWM Interrupt Event Names.
#define PWM0_INT_EVENT_NAME TEXT("VGX-PWM0-INT-70D34510-CEEE-42a2-BA7E-66045FEA170C")
#define PWM1_INT_EVENT_NAME TEXT("VGX-PWM1-INT-70D34510-CEEE-42a2-BA7E-66045FEA170C")
#define PWM2_INT_EVENT_NAME TEXT("VGX-PWM2-INT-70D34510-CEEE-42a2-BA7E-66045FEA170C")
///////////////////////////////////////////////////////////////////////////////
// PWM return results.
typedef enum _VGXPWM_RESULTS
{
VGXPWM_SUCCESS = 1,
VGXPWM_INVALID_PARAMETER = -1,
VGXPWM_EVENT_FAILED = -2,
VGXPWM_INT_NOT_SUPPORTED = -3
}
VGXPWM_RESULTS, *PVGXPWM_RESULTS;
///////////////////////////////////////////////////////////////////////////////
// PWM index constants to access PWM0, PWM1 and PWM2.
typedef enum _VGXPWM_INDEX
{
VGXPWM0,
VGXPWM1,
VGXPWM2,
VGXPWMCOUNT
}
VGXPWM_INDEX, *PVGXPWM_INDEX;
///////////////////////////////////////////////////////////////////////////////
// PWM Management internal structure.
typedef struct
{
BOOL bPWMEnabled; // Enabled flag
DWORD PWMAddress; // I/O Port
HANDLE hIntEvent; // Interrupt Event handle
LPTSTR lpszIntEventName; // Event name
WORD wLowCounter; // Low counter
WORD wHighCounter; // High counter
BYTE byClockDivider; // Clock divider
BOOL bIntEnable; // Interrupt enable
}
PWM_STRUCT;
///////////////////////////////////////////////////////////////////////////////
// Command constants for use with VGXPWM_STRUCT.
typedef enum _VGXPWM_COMMANDS
{
VGXPWMCMD_INIT,
VGXPWMCMD_START,
VGXPWMCMD_STOP
}
VGXPWM_COMMANDS, *PVGXPWM_COMMANDS;
///////////////////////////////////////////////////////////////////////////////
// Structure used in ExtEscape calls to access PWM API.
typedef struct _VGXPWM_STRUCT
{
VGXPWM_COMMANDS Command; // One of VGXPWM_COMMANDS
VGXPWM_INDEX PWMIndex; // VGXPWM0, VGXPWM1 or VGXPWM2
// VGXPWMCMD_INIT parameters
WORD wLowCounter; // Low counter
WORD wHighCounter; // High counter
BYTE byClockDivider; // Clock divider
BOOL bIntEnable; // Interrupt flag
}
VGXPWM_STRUCT, *PVGXPWM_STRUCT;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -