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

📄 10.5.c

📁 数字信号处理器 原理、结构及应用基础-TMS320F28x所附光盘源程序C-C++ 刘和平等编著
💻 C
字号:
#include "DSP28_Device.h"
void main(void)
{
InitSysCtrl();
EALLOW;
GpioMuxRegs.GPAMUX.all = 0x00FF; //  使能EVA PWM1~6引脚和T1PWM、T2PWM
GpioMuxRegs.GPBMUX.all = 0x00FF; // EVB PWM 7~12 引脚和T3PWM、T4PWM
EDIS;
//  禁止和清零所有CPU中断
DINT; 			       //  #define  DINT   asm(" setc INTM")
IER = 0x0000;
IFR = 0x0000;
InitPieCtrl();
InitPieVectTable();
// EVA 配置 T1PWM, T2PWM, PWM1~PWM6
//  (1)初始化定时器
//  初始化 EVA Timer1
EvaRegs.T1PR = 0xFFFF;       //  Timer1 周期寄存器
EvaRegs.T1CMPR = 0x3C00;    //  Timer1 比较寄存器
EvaRegs.T1CNT = 0x0000;      //  Timer1 计数寄存器
EvaRegs.T1CON.all = 0x1042;    //  TMODE = 连续增减计数模式
//  Timer使能,Timer比较使能
//  初始化 EVA Timer2
EvaRegs.T2PR = 0x0FFF;
EvaRegs.T2CMPR = 0x03C0;
EvaRegs.T2CNT = 0x0000;
EvaRegs.T2CON.all = 0x1042;
//  (2) 设置 T1PWM和T2PWM,通过比较逻辑驱动 T1/T2 PWM
EvaRegs.GPTCONA.bit.TCOMPOE = 1;
//  通用定时器1的比较输出的极性为低电平有效
EvaRegs.GPTCONA.bit.T1PIN = 1;
//  通用定时器1的比较输出的极性为高电平有效
EvaRegs.GPTCONA.bit.T2PIN = 2;
//  (3) 使能比较输出PWM1~PWM6
EvaRegs.CMPR1 = 0x0C00;
EvaRegs.CMPR2 = 0x3C00;
EvaRegs.CMPR3 = 0xFC00;
//  比较模式控制.  比较时动作
//  输出引脚 1 CMPR1 - 高电平有效
//  输出引脚 2 CMPR1 - 低电平有效
//  输出引脚 3 CMPR2 - 高电平有效
//  输出引脚 4 CMPR2 - 低电平有效
//  输出引脚 5 CMPR3 - 高电平有效
//  输出引脚 6 CMPR3 - 低电平有效
EvaRegs.ACTRA.all = 0x0666;
EvaRegs.DBTCONA.all = 0x0000;     //  禁止死区
EvaRegs.COMCONA.all = 0xA600;
// EVB 配置 T3PWM, T4PWM and PWM7~PWM12
//  (1)初始化定时器,初始化 EVB Timer3,Timer3 控制 T3PWM 和PWM7~12
EvbRegs.T3PR = 0xFFFF;            //  Timer3 周期寄存器
EvbRegs.T3CMPR = 0x3C00;         //  Timer3 比较寄存器
EvbRegs.T3CNT = 0x0000;           //  Timer3 计数寄存器
//  TMODE = 连续增减计数模式,Timer使能,Timer比较使能
EvbRegs.T3CON.all = 0x1042;
//  初始化 EVB Timer 4
EvbRegs.T4PR = 0x00FF;
EvbRegs.T4CMPR = 0x0030;
EvbRegs.T4CNT = 0x0000;
EvbRegs.T4CON.all = 0x1042;
//  (2) 设置 T3PWM 和 T4PWM,通过比较逻辑驱动 T3/T4 PWM
EvbRegs.GPTCONB.bit.TCOMPOE = 1;
//  通用定时器3的比较输出的极性为低电平有效
EvbRegs.GPTCONB.bit.T3PIN = 1;
//  通用定时器4的比较输出的极性为高电平有效
EvbRegs.GPTCONB.bit.T4PIN = 2;
//  Step 3 使能比较输出PWM7~PWM12
EvbRegs.CMPR4 = 0x0C00;
EvbRegs.CMPR5 = 0x3C00;
EvbRegs.CMPR6 = 0xFC00;
//  比较模式控制.  发生在比较事件的行为
//  输出引脚 1 CMPR4 - 高电平有效
//  输出引脚 2 CMPR4 - 低电平有效
//  输出引脚 3 CMPR5 - 高电平有效
//  输出引脚 4 CMPR5 - 低电平有效
//  输出引脚 5 CMPR6 - 高电平有效
//  输出引脚 6 CMPR6 - 低电平有效
EvbRegs.ACTRB.all = 0x0666;
EvbRegs.DBTCONB.all = 0x0000; //  禁止死区
EvbRegs.COMCONB.all = 0xA600;
// (6)主程序死循环,可以放置子程序在循环中。
for(;;){;}
} 

⌨️ 快捷键说明

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