📄 pwmprevate.h
字号:
/***********************************************Copyright (c)*********************************************
** Guangzou ZLG-MCU Development Co.,LTD.
**
** http://www.zlgmcu.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: PwmPrevate.h
** Last modified Date: 2007-11-13
** Last Version: 1.0
** Descriptions: PWM私有头文件,只被PWM.c调用
**
**--------------------------------------------------------------------------------------------------------
** Created by: LiXiaoCheng
** Created date: 2007-11-13
** Version: 1.0
** Descriptions: 初始版本
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
** Version:
** Descriptions:
**
*********************************************************************************************************/
#ifndef __PWM_PREVATE_H
#define __PWM_PREVATE_H
/*********************************************************************************************************
定义pwm设备结构体
*********************************************************************************************************/
struct __pwm_info {
volatile uint32 *puiAddrBase; /* 寄存器基地址 */
uint32 uiOffBase; /* 寄存器偏移量 */
uint8 ucMode; /* PWM工作模式 */
};
typedef struct __pwm_info __PWM_INFO; /* 定义类型 */
typedef __PWM_INFO *__PPWM_INFO; /* 定义指针 */
/*********************************************************************************************************
定义pwm参数传递结构体
*********************************************************************************************************/
struct __pwm_parm {
uint32 uiMode;
uint32 uiPeriod;
uint32 uiEdg;
uint32 uiActCtrl;
uint32 uiOutCtrl;
uint32 uiPwmUp;
uint32 uiPwmDown;
};
typedef struct __pwm_parm __PWM_PARM; /* 定义类型 */
typedef __PWM_PARM *__PPWM_PARM; /* 定义指针 */
/*********************************************************************************************************
定义pwm设备数量
*********************************************************************************************************/
#define __PWM_MAX_NUM 1
/*********************************************************************************************************
定义pwm输出通道数量
*********************************************************************************************************/
#define __PWM_MAX_CHANLE 6
/*********************************************************************************************************
定义pwm寄存器偏移位置,该宏定义,移植需修改,但需注意偏移量的大小
*********************************************************************************************************/
#define __B_PWM_IR 0 /* PWMIR */
#define __B_PWM_TCR 1 /* PWMTCR */
#define __B_PWM_TC 2 /* PWMTC */
#define __B_PWM_PR 3 /* PWMPR */
#define __B_PWM_PC 4 /* PWMPC */
#define __B_PWM_MCR 5 /* PWMMCR */
#define __B_PWM_MR0 6 /* PWMMR0 */
#define __B_PWM_MR1 7 /* PWMMR1 */
#define __B_PWM_MR2 8 /* PWMMR2 */
#define __B_PWM_MR3 9 /* PWMMR3 */
#define __B_PWM_MR4 16 /* PWMMR4 */
#define __B_PWM_MR5 17 /* PWMMR5 */
#define __B_PWM_MR6 18 /* PWMMR6 */
#define __B_PWM_PCR 19 /* PWMPCR */
#define __B_PWM_LER 20 /* PWMLER */
/*********************************************************************************************************
定义pwm工作模式为PWM模式还是定时器模式
*********************************************************************************************************/
#define __PWM_MODE_TIME 0 /* PWM为定时器模式 */
#define __PWM_MODE_PWM 1 /* PWM为PWM模式 */
#define __PWM_MODE_MAX __PWM_MODE_PWM /* 定义PWM模式参数的最大值 */
/*********************************************************************************************************
定义pwm是否输出到管脚
*********************************************************************************************************/
#define __PWM_OUTPIN_EN 0 /* PWM信号输出到管脚 */
#define __PWM_OUTPIN_DIS 1 /* PWM信号不输出到管脚 */
#define __PWM_OUTPIN_MAX __PWM_OUTPIN_DIS /* 定义PWM管脚输出参数的最大值 */
/*********************************************************************************************************
定义pwm是单边沿还是双边沿输出
*********************************************************************************************************/
#define __PWM_SIG_OUT 0 /* PWM单边沿输出 */
#define __PWM_DUB_OUT 1 /* PWM双边沿输出 */
#define __PWM_EDG_MAX __PWM_DUB_OUT /* 定义PWM边沿输出参数最大值 */
/*********************************************************************************************************
定义pwm匹配时响应的动作
*********************************************************************************************************/
#define __PWM_NONE 0 /* 通道匹配无动作 */
#define __PWM_INT 1 /* 通道匹配产生中断,定时器继续*/
#define __PWM_RESET 2 /* 通道匹配复位定时器 */
#define __PWM_INT_RESET 3 /* 通道匹配产生中断并复位 */
#define __PWM_STOP 4 /* 通道匹配停止定时器 */
#define __PWM_INT_STOP 5 /* 通道匹配产生中断并停止 */
#define __PWM_ACT_MAX __PWM_INT_STOP /* 定义匹配响应操作最大值 */
/*********************************************************************************************************
定义pwm匹配时响应的动作
*********************************************************************************************************/
#define __PWM_US (Fpclk/1000000) /* 定义微秒周期数 */
#define __PWM_TT_US_DECI (Fpclk / 100 - (Fpclk / 1000000) * 10000)
/* 定义10000US产生的小数周期 */
#define __PWM_T_US_DECI (Fpclk / 1000 - (Fpclk / 1000000) * 1000)
/* 定义1000US产生的小数周期 */
#define __PWM_H_US_DECI (Fpclk / 10000 - (Fpclk / 1000000) * 100)
/* 定义100US产生的小数周期 */
#endif /* __PWM_PREVATE_H */
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -