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

📄 pwm.h

📁 使用TI DSP 2407A 进行开发的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#define  CMP10ACT_HIGH_ENA     0x0080                      //高有效
#define  CMP10ACT_HIGH         0x00C0                      //强制高

//PWM9 输出方式选择
#define  CMP9ACT_LOW          0x0000                     //强制低
#define  CMP9ACT_LOW_ENA      0x0010                     //低有效
#define  CMP9ACT_HIGH_ENA     0x0020                      //高有效
#define  CMP9ACT_HIGH         0x0030                      //强制高

//PWM8 输出方式选择
#define  CMP8ACT_LOW          0x0000                     //强制低
#define  CMP8ACT_LOW_ENA      0x0004                     //低有效
#define  CMP8ACT_HIGH_ENA     0x0008                      //高有效
#define  CMP8ACT_HIGH         0x000C                      //强制高

//PWM7 输出方式选择
#define  CMP7ACT_LOW          0x0000                     //强制低
#define  CMP7ACT_LOW_ENA      0x0001                     //低有效
#define  CMP7ACT_HIGH_ENA     0x0002                      //高有效
#define  CMP7ACT_HIGH         0x0003                      //强制高

 
/* DBTCONA EVA死区控制寄存器 */


//死区定时器周期
#define  DBTCONA_DBT_0          0x0000
#define  DBTCONA_DBT_1          0x0100
#define  DBTCONA_DBT_2          0x0200
#define  DBTCONA_DBT_3          0x0300
#define  DBTCONA_DBT_4          0x0400
#define  DBTCONA_DBT_5          0x0500
#define  DBTCONA_DBT_6          0x0600
#define  DBTCONA_DBT_7          0x0700
#define  DBTCONA_DBT_8          0x0800
#define  DBTCONA_DBT_9          0x0900
#define  DBTCONA_DBT_10         0x0A00
#define  DBTCONA_DBT_11         0x0B00
#define  DBTCONA_DBT_12         0x0C00
#define  DBTCONA_DBT_13         0x0D00
#define  DBTCONA_DBT_14         0x0E00
#define  DBTCONA_DBT_15         0x0F00

#define DBTCONA_EDBT3    0x0080                      //死区定时器3使能
#define DBTCONA_EDBT2    0x0040                      //死区定时器2使能
#define DBTCONA_EDBT1    0x0020                      //死区定时器1使能

//死区定时器预分频器
#define  DBTCONA_DBTPS_0         0x0000              //  X/1
#define  DBTCONA_DBTPS_1         0x0004              //  X/2
#define  DBTCONA_DBTPS_2         0x0008              //  X/4
#define  DBTCONA_DBTPS_3         0x000C              //  X/8
#define  DBTCONA_DBTPS_4         0x0010              //  X/16
#define  DBTCONA_DBTPS_5         0x0014              //  X/32
//#define  DBTCONA_DBTPS_6         0x0018              //  X/4
//#define  DBTCONA_DBTPS_7         0x001C              //  X/4



/* DBTCONB EVB死区控制寄存器 */

//死区定时器周期
#define  DBTCONB_DBT_0          0x0000
#define  DBTCONB_DBT_1          0x0100
#define  DBTCONB_DBT_2          0x0200
#define  DBTCONB_DBT_3          0x0300
#define  DBTCONB_DBT_4          0x0400
#define  DBTCONB_DBT_5          0x0500
#define  DBTCONB_DBT_6          0x0600
#define  DBTCONB_DBT_7          0x0700
#define  DBTCONB_DBT_8          0x0800
#define  DBTCONB_DBT_9          0x0900
#define  DBTCONB_DBT_10         0x0A00
#define  DBTCONB_DBT_11         0x0B00
#define  DBTCONB_DBT_12         0x0C00
#define  DBTCONB_DBT_13         0x0D00
#define  DBTCONB_DBT_14         0x0E00
#define  DBTCONB_DBT_15         0x0F00

#define DBTCONB_EDBT3    0x0080                      //死区定时器3使能
#define DBTCONB_EDBT2    0x0040                      //死区定时器2使能
#define DBTCONB_EDBT1    0x0020                      //死区定时器1使能

//死区定时器预分频器
#define  DBTCONB_DBTPS_0         0x0000              //  X/1
#define  DBTCONB_DBTPS_1         0x0004              //  X/2
#define  DBTCONB_DBTPS_2         0x0008              //  X/4
#define  DBTCONB_DBTPS_3         0x000C              //  X/8
#define  DBTCONB_DBTPS_4         0x0010              //  X/16
#define  DBTCONB_DBTPS_5         0x0014              //  X/32
//#define  DBTCONB_DBTPS_6         0x0018              //  X/4
//#define  DBTCONB_DBTPS_7         0x001C              //  X/4

//定义PWM通道值

#define  PWM6_NUM        6
#define  PWM5_NUM        5
#define  PWM4_NUM        4
#define  PWM3_NUM        3
#define  PWM2_NUM        2
#define  PWM1_NUM        1


#define  PWM12_NUM       12
#define  PWM11_NUM       11
#define  PWM10_NUM       10
#define  PWM9_NUM        9
#define  PWM8_NUM        8
#define  PWM7_NUM        7

#define  T4PWM_NUM       4
#define  T3PWM_NUM       3
#define  T2PWM_NUM       2
#define  T1PWM_NUM       1

#define  GPT4       4
#define  GPT3       3
#define  GPT2       2
#define  GPT1       1

#define GPT1_NUM          1
#define GPT2_NUM          2
#define GPT3_NUM          3
#define GPT4_NUM          4

#define   CMP1_NUM     1
#define   CMP2_NUM     2
#define   CMP3_NUM     3
#define   CMP4_NUM     4
#define   CMP5_NUM     5
#define   CMP6_NUM     6

#define   PDINTA_NUM     1
#define   PDINTB_NUM     2

#define    EVA_NUM       1
#define    EVB_NUM       2

#define  SYS_FRQUENCE   30000000

//#define  GP1_FRQUENCE    (SYS_FRQUENCE/128)  //234575
//#define  GP2_FRQUENCE    (SYS_FRQUENCE/128)  //234575
//#define  GP3_FRQUENCE    (SYS_FRQUENCE/128)  //234575
//#define  GP4_FRQUENCE    (SYS_FRQUENCE/128)  //234575



#define    LEFT      1
#define    RIGHT    2


#define    FORWARD      1
#define    BACK    2





void init_ev(void);


void GP_Init();


/*通用定时器x的周期寄存器设定*/
void GPTxPR_Set(unsigned int GPTx_NUM,unsigned int TxPR);

/*通用定时器x的比较寄存器设定*/

void GPTxCMPR_Set(unsigned int GPTx_NUM,unsigned int TxCMPR);

/*通用定时器x的计数器设定*/
void GPTxCNT_Set(unsigned int GPTx_NUM,unsigned int TxCNT);


/*通用定时器x的周期频率设定*/
void GPTx_Frequence_Set(unsigned int GPTx_NUM,unsigned int GPTx_Frequence);

/*
TxCON参数设定函数,可以设定输入时钟的预定标系数,及记数模式,默认的为连续增记数,128分频
时钟源选择,定时器比较寄存器的重载条件,等参数

*/

void GPTxCON_PARA_SET(unsigned int GPTx_NUM,unsigned int PARA);

void GPTx_ENA(unsigned int GPTx_NUM);                //定时器x使能

/*禁止定时器x的操作*/
void GPTx_DISABLE(unsigned int GPTx_NUM);               

/*使能定时器X的比较操作*/
void GPTxCMPR_ENA(unsigned int GPTx_NUM);               

/*禁止定时器x的比较操作*/
void GPTxCMPR_DISABLE(unsigned int GPTx_NUM);               


//通用定时器x上溢中断使能
void GPTxOFINT_ENA(unsigned int GPTx_NUM);  


//通用定时器x下溢中断使能
void GPTxUFINT_ENA(unsigned int GPTx_NUM);  


//通用定时器x比较中断使能
void GPTxCINT_ENA(unsigned int GPTx_NUM);  

 //通用定时器x周期中断使能

void GPTxPINT_ENA(unsigned int GPTx_NUM) ;

//通用定时器x上溢中断禁止
void GPTxOFINT_DISABLE(unsigned int GPTx_NUM);

//通用定时器x下溢中断禁止
void GPTxUFINT_DISABLE(unsigned int GPTx_NUM);  

//通用定时器x比较中断使能
void GPTxCINT_DISABLE(unsigned int GPTx_NUM) ; 

 //通用定时器x周期中断禁止
void GPTxPINT_DISABLE(unsigned int GPTx_NUM); 

/*设定定时器x的比较输出方波的频率*/
void TxPWM_Frequence_Set(unsigned int TxPWM_NUM,unsigned int TxPWM_Frequence);

/*设定定时器x的比较输出方波的占空比*/
#define MAX_FULL_BLANK_NUM  1000

void GPTx_Full_Blank_Set(unsigned int GPTx_NUM,unsigned int FULL_BLANK_NUM);
void TxPWM_Full_Blank_Set(unsigned int TxPWM_NUM,unsigned int FULL_BLANK_NUM);

/*
通用定时器比较输出极性设定
可以通过此函数令输出为恒高、恒低电平*/

void TxPWM_Output_Set(unsigned int TxPWM_NUM,unsigned int TxPWM_Polar );       

/*此函数使得EVA的比较输出为高阻态*/

void EVA_TxPWM_Output_DISABLE();
void EVA_TxPWM_Output_ENABLE();

/*
此函数使得EVB的比较输出为高阻态
*/
void EVB_TxPWM_Output_DISABLE();
void EVB_TxPWM_Output_ENABLE();

void PWM_Init();
/*EV中全比较单元的比较输出极性设定
可以通过此函数令输出为恒高、恒低、高有效、低有效电平*/

void PWMx_Output_Set(unsigned int PWMx_NUM,unsigned int PWM_Polar ); 

/*EV中全比较单元的比较寄存器数值设定*/
void PWMx_CMPR_Set(unsigned int PWMx_NUM,unsigned int PWMx_CMPR_NUM); 

/*EV中全比较单元的比较输出波形占空比设定
MAX_FULL_BLANK_NUM =1000
可以通过 MAX_FULL_BLANK_NUM 的改变来细化波形的精确度*/
void PWMx_Full_Blank_Set(unsigned int PWMx_NUM,unsigned int FULL_BLANK_NUM); 

//比较单元x比较中断使能
void CMPxINT_ENA(unsigned int CMPx_NUM); 

//比较单元x比较中断禁止
void CMPxINT_DISABLE(unsigned int CMPx_NUM); 
//功率保护中断x中断使能


void PDINTxINT_ENA(unsigned int PDINTx_NUM);  

//功率保护中断x中断禁止
void PDINTxINT_DISABLE(unsigned int PDINTx_NUM);  

//使能全比较器X的比较操作

void CMPRx_ENA(unsigned int CMPx_NUM) ; 


//禁止全比较器X的比较操作
void CMPRx_DISABLE(unsigned int CMPx_NUM);  


/*
事件管理模块参数设定函数,可以设定比较寄存器的重载条件
方式控制寄存器重载条件
*/

void COMCONx_PARA_SET(unsigned int EVx_NUM,unsigned int PARA);

void GPTCONx_PARA_SET(unsigned int EVx_NUM,unsigned int PARA);



/*全比较单元中某一比较单元的载波频率的设定与改变
 //限制使用,因为改变一个比较单元的载波频率的同时,也会改变
 同一EV中其他的比较单元的频率*/


void PWMx_Frequence_Set(unsigned int PWMx_NUM,unsigned int PWMx_Frequence);   

/*强制使得全比较单元中某一比较单元的比较输出为低电平*/
void PWMx_Output_DISABLE(unsigned int PWMx_NUM);
/*
强制使得EVA中的所有全比较单元的比较输出为高阻态*/
void EVA_PWM_Output_DISABLE();


/*强制使得EVB中的所有全比较单元的比较输出为高阻态*/
void EVB_PWM_Output_DISABLE();


void EV_TEST();

void Drive_Init(void);

void  Drive(unsigned int left_right,unsigned int direct,unsigned int speed);











 
      
         









⌨️ 快捷键说明

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