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

📄 pwm.h

📁 使用TI DSP 2407A 进行开发的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#include "io.h"

/*
  EVAIMRA
*/

#define T1OFINT_ENA         0x0400
#define T1UFINT_ENA         0x0200
#define T1CINT_ENA          0x0100

#define T1PINT_ENA          0x0080

#define CMP3INT_ENA         0x0008
#define CMP2INT_ENA         0x0004
#define CMP1INT_ENA         0x0002
#define PDINTA_ENA          0x0001


/*
  EVAIMRB
*/

#define T2OFINT_ENA         0x0008
#define T2UFINT_ENA         0x0004
#define T2CINT_ENA          0x0002
#define T2PINT_ENA          0x0001

/*
  EVAIMRC
*/

#define CAP3INT_ENA          0x0004
#define CAP2INT_ENA          0x0002
#define CAP1INT_ENA          0x0001

/*
  EVAIFRA
*/

#define T1OFINT_FLAG         0x0400
#define T1UFINT_FLAG         0x0200
#define T1CINT_FLAG          0x0100

#define T1PINT_FLAG          0x0080

#define CMP3INT_FLAG         0x0008
#define CMP2INT_FLAG         0x0004
#define CMP1INT_FLAG         0x0002
#define PDINTA_FLAG          0x0001

/*
  EVAIFRB
*/

#define T2OFINT_FLAG         0x0008
#define T2UFINT_FLAG         0x0004
#define T2CINT_FLAG          0x0002
#define T2PINT_FLAG          0x0001

/*
  EVAIFRC
*/

#define CAP3INT_FLAG          0x0004
#define CAP2INT_FLAG          0x0002
#define CAP1INT_FLAG          0x0001




/*
  EVBIMRA
*/

#define T3OFINT_ENA         0x0400
#define T3UFINT_ENA         0x0200
#define T3CINT_ENA          0x0100

#define T3PINT_ENA          0x0080

#define CMP6INT_ENA         0x0008
#define CMP5INT_ENA         0x0004
#define CMP4INT_ENA         0x0002
#define PDINTB_ENA          0x0001


/*
  EVBIMRB
*/

#define T4OFINT_ENA         0x0008
#define T4UFINT_ENA         0x0004
#define T4CINT_ENA          0x0002
#define T4PINT_ENA          0x0001

/*
  EVBIMRC
*/

#define CAP6INT_ENA         0x0004
#define CAP5INT_ENA         0x0002
#define CAP4INT_ENA         0x0001

/*
  EVBIFRA
*/

#define T3OFINT_FLAG         0x0400
#define T3UFINT_FLAG         0x0200
#define T3CINT_FLAG          0x0100

#define T3PINT_FLAG          0x0080

#define CMP6INT_FLAG         0x0008
#define CMP5INT_FLAG         0x0004
#define CMP4INT_FLAG         0x0002
#define PDINTB_FLAG          0x0001

/*
  EVBIFRB
*/

#define T4OFINT_FLAG         0x0008
#define T4UFINT_FLAG         0x0004
#define T4CINT_FLAG          0x0002
#define T4PINT_FLAG          0x0001

/*
  EVBIFRC
*/

#define CAP6INT_FLAG          0x0004
#define CAP5INT_FLAG          0x0002
#define CAP4INT_FLAG          0x0001

/* TxCON */

//记数模式选择
#define     TMODE_0   0x0000    //停止/保持
#define     TMODE_1   0x0800   //连续增/减记数模式
#define     TMODE_2   0x1000   //连续增记数模式
#define     TMODE_3   0x1800   //定向增/减记数模式

//输入时钟预定标
#define    TPS_128     0x0700   //输入时钟预定标
#define    TPS_64      0x0600
#define    TPS_32      0x0500
#define    TPS_16      0x0400
#define    TPS_8       0x0300
#define    TPS_4       0x0200
#define    TPS_2       0x0100
#define    TPS_1       0x0000

#define   TENABLE     0x0040    //使能定时器
#define   Tx_DISABLE   0xFFBF

//定时器时钟源选择
#define     TLKS_0      0x0000     //CPU时钟
#define     TLKS_1      0x0010     //外部时钟
#define     TLKS_2      0x0020     //保留
#define     TLKS_3      0x0030      //正交脉冲编码电路

//定时器比较寄存器重载条件
#define     TCLD_0      0x0000      //计数器为0时重载
#define     TCLD_1      0x0004      //计数器是0或等于周期寄存器时重载
#define     TCLD_2      0x0008      //立即重装载
#define     TCLD_3      0x000C      //保留

#define     TECMPR            0x0002       //定时器比较使能位
#define     TxCMPR_DISABLE    0xFFFD



/* T1CON */

#define T1CON_FREE     0x8000
#define T1CON_SOFT     0x4000

//#define T1CON_SWT1     0x0080      //不使用定时器自身周期寄存器
//#define T1CON_SELT1PR     0x0001        //周期寄存器选择

/* T2CON */

#define T2CON_FREE     0x8000
#define T2CON_SOFT     0x4000

#define T2CON_SWT1     0x0080      //不使用定时器自身周期寄存器
#define T2CON_SELT1PR     0x0001        //周期寄存器选择

/* T3CON */
#define T3CON_FREE     0x8000
#define T3CON_SOFT     0x4000

//#define T3CON_SWT1     0x0080      //不使用定时器自身周期寄存器
//#define T3CON_SELT1PR     0x0001        //周期寄存器选择

/* T4CON */
#define T4CON_FREE     0x8000
#define T4CON_SOFT     0x4000

#define T4CON_SWT1       0x0080      //不使用定时器自身周期寄存器
#define T4CON_SELT3PR     0x0001        //周期寄存器选择


/* GPTCONA  */

#define T2TOADC_0       0x0000      
#define T2TOADC_1       0x0200
#define T2TOADC_2       0x0400
#define T2TOADC_3       0x0600

#define T1TOADC_0       0x0000
#define T1TOADC_1       0x0080
#define T1TOADC_2       0x0100
#define T1TOADC_3       0x0180

#define TCOMPOE         0x0040           //比较输出允许,若PDINTA有效,该位为0


//通用定时器2比较输出极性
#define T2PIN_LOW         0x0000           //强制低
#define T2PIN_LOW_ENA     0x0004           //低有效
#define T2PIN_HIGH_ENA    0x0008           //高有效
#define T2PIN_HIGH        0x000C           //强制高

//通用定时器1比较输出极性
#define T1PIN_LOW         0x0000             //强制低
#define T1PIN_LOW_ENA         0x0001             //低有效
#define T1PIN_HIGH_ENA        0x0002             //高有效
#define T1PIN_HIGH         0x0003             //强制高



/* GPTCONB  */

#define T4TOADC_0       0x0000      
#define T4TOADC_1       0x0200
#define T4TOADC_2       0x0400
#define T4TOADC_3       0x0600

#define T3TOADC_0       0x0000
#define T3TOADC_1       0x0080
#define T3TOADC_2       0x0100
#define T3TOADC_3       0x0180

//#define TCOMPOE         0x0040           //比较输出允许,若PDINTB有效,该位为0


//通用定时器4比较输出极性
#define T4PIN_LOW            0x0000           //强制低
#define T4PIN_LOW_ENA        0x0004           //低有效
#define T4PIN_HIGH_ENA       0x0008           //高有效
#define T4PIN_HIGH           0x000C           //强制高

//通用定时器3比较输出极性
#define T3PIN_LOW           0x0000             //强制低
#define T3PIN_LOW_ENA       0x0001             //低有效
#define T3PIN_HIGH_ENA      0x0002             //高有效
#define T3PIN_HIGH           0x0003             //强制高

#define PWM_LOW          0x0000
#define PWM_LOW_ENA      0x0001
#define PWM_HIGH_ENA     0x0002
#define PWM_HIGH         0x0003







/* COMCONx  */
#define  CENABLE   0x8000               //允许比较操作


//寄存器重载条件 
#define     CLD_0      0x0000         //T1CNT =0  or   T3CNT =0  
#define     CLD_1      0x2000         //T1/3CNT =0 或T1/3CNT =T1/3PR    
#define     CLD_2      0x4000         //RIGHT NOW   

//方式控制寄存器重载条件
#define    ACTRLD_0      0x0000             //T1/3CNT =0
#define    ACTRLD_1      0x0400             //T1/3CNT =0 或T1/3CNT =T1PR
#define    ACTRLD_2      0x0800             //RIGHT NOW


#define    FCOMPOE     0x0200            //PWM OUTPUT ENABLE


/* ACTRA  */

//PWM6 输出方式选择
#define  CMP6ACT_LOW          0x0000                     //强制低
#define  CMP6ACT_LOW_ENA      0x0400                     //低有效
#define  CMP6ACT_HIGH_ENA     0x0800                      //高有效
#define  CMP6ACT_HIGH         0x0C00                      //强制高

//PWM5 输出方式选择
#define  CMP5ACT_LOW          0x0000                     //强制低
#define  CMP5ACT_LOW_ENA      0x0100                     //低有效
#define  CMP5ACT_HIGH_ENA     0x0200                      //高有效
#define  CMP5ACT_HIGH         0x0300                      //强制高

//PWM4 输出方式选择
#define  CMP4ACT_LOW          0x0000                     //强制低
#define  CMP4ACT_LOW_ENA      0x0040                     //低有效
#define  CMP4ACT_HIGH_ENA     0x0080                      //高有效
#define  CMP4ACT_HIGH         0x00C0                      //强制高

//PWM3 输出方式选择
#define  CMP3ACT_LOW          0x0000                     //强制低
#define  CMP3ACT_LOW_ENA      0x0010                     //低有效
#define  CMP3ACT_HIGH_ENA     0x0020                      //高有效
#define  CMP3ACT_HIGH         0x0030                      //强制高

//PWM2 输出方式选择
#define  CMP2ACT_LOW          0x0000                     //强制低
#define  CMP2ACT_LOW_ENA      0x0004                     //低有效
#define  CMP2ACT_HIGH_ENA     0x0008                      //高有效
#define  CMP2ACT_HIGH         0x000C                      //强制高

//PWM1 输出方式选择
#define  CMP1ACT_LOW          0x0000                     //强制低
#define  CMP1ACT_LOW_ENA      0x0001                     //低有效
#define  CMP1ACT_HIGH_ENA     0x0002                      //高有效
#define  CMP1ACT_HIGH         0x0003                      //强制高



/* ACTRB  */

//PWM12 输出方式选择
#define  CMP12ACT_LOW          0x0000                     //强制低
#define  CMP12ACT_LOW_ENA      0x0400                     //低有效
#define  CMP12ACT_HIGH_ENA     0x0800                      //高有效
#define  CMP12ACT_HIGH         0x0C00                      //强制高

//PWM11 输出方式选择
#define  CMP11ACT_LOW          0x0000                     //强制低
#define  CMP11ACT_LOW_ENA      0x0100                     //低有效
#define  CMP11ACT_HIGH_ENA     0x0200                      //高有效
#define  CMP11ACT_HIGH         0x0300                      //强制高

//PWM10 输出方式选择
#define  CMP10ACT_LOW          0x0000                     //强制低
#define  CMP10ACT_LOW_ENA      0x0040                     //低有效

⌨️ 快捷键说明

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