资源简介
基于DSPf28335_ePWM_互补对称波形源程序,程序里用中文注释了每一条程序,简单易懂,适合学模块的时候立马入门,给大家参考。
代码片段和文件信息
/*
* ePWM_hubuduichen.c
*
* Created on: 2019年3月16日
* Author: ZHOUXQ
*/
#include “DSP2833x_Device.h“ // DSP2833x Headerfile Include File
#include “DSP2833x_Examples.h“ // DSP2833x Examples Include File
void InitePWM1Gpio(void);
void ePWMSetup(void);
void main()
{
// Step 1. Initialize System Control:
// PLL WatchDog enable Peripheral Clocks
// This example function is found in the DSP2833x_SysCtrl.c file.
InitSysCtrl(); //步骤1。初始化控制系统
// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
DINT; //关闭总中断
// Initialize the PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.
// This function is found in the DSP2833x_PieCtrl.c file.
InitPieCtrl(); //初始化PIE
// Disable CPU interrupts and clear all CPU interrupt flags:
IER = 0x0000;
IFR = 0x0000;
// Initialize the PIE vector table with pointers to the shell Interrupt
// Service Routines (ISR).
// This will populate the entire table even if the interrupt
// is not used in this example. This is useful for debug purposes.
// The shell ISR routines are found in DSP2833x_DefaultIsr.c.
// This function is found in DSP2833x_PieVect.c.
InitPieVectTable(); //中断向量表
ePWMSetup();
for(;;); //相当于while(1);
}
void InitePWM1Gpio(void)
{
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO0=0;
GpioCtrlRegs.GPAPUD.bit.GPIO1=0;
GpioCtrlRegs.GPAMUX1.bit.GPIO0=1;
GpioCtrlRegs.GPAMUX1.bit.GPIO1=1;
EDIS;
}
void ePWMSetup(void)
{
EALLOW;
InitePWM1Gpio(); //配置为ePWM端口
EPwm1Regs.TBPRD=1200; //时基控制寄存器 设定PWM周期为2×600个TBCLK时钟周期
EPwm1Regs.CMPA.half.CMPA=600; //比较器A设置为600个TBCLK TBCLK是时基时钟
EPwm1Regs.CMPB=600; //比较器B设置为600个TBCLK
EPwm1Regs.TBSTS.all=0; //时基状态寄存器清零
EPwm1Regs.TBPHS.half.TBPHS = 0; //时基相位寄存器清零
EPwm1Regs.TBCTR = 0; //时基计数寄存器清零
EPwm1Regs.CMPCTL.all=0x50; //计数比较控制寄存器 计数比较A和B寄存器操作模式为立即转载模式,不需要影子寄存器
EPwm1Regs.TBCTL.all=0x003A; //时基控制寄存器 设置为:时基时钟分频位为1,高速时基时钟分频位为1,相当于不分频。
//禁止同步信号输出,禁止使用影子寄存器,禁止计数寄存器装载相位寄存器,计数模式为上下计数。
EPwm1Regs.AQCTLA.bit.CAU=0x2; //当向上计数时,时基计数器的值与CMPA寄存器的值相等时使ePWMA输出高;
EPwm1Regs.AQCTLA.bit.CAD=0x1; //当向下计数时,时基计数器的值与CMPA寄存器的值相等时使ePWMA输出低;
EPwm1Regs.AQCTLB.bit.CBU=0x1; //当向上计数时,时基计数器的值与CMPB寄存器的值相等时使ePWMB输出低;
EPwm1Regs.AQCTLB.bit.CBD=0x2; //当向上计数时,时基计数器的值与CMPB寄存器的值相等时使ePWMB输出高;
EPwm1Regs.DBCTL.all=0x2; //死区控制寄存器 配置为:ePWMxA是双边沿延时输入源。ePWMA和ePWMB都不翻转。禁止下降沿延时,使能上升沿延时;
EPwm1Regs.DBRED=100; //死区上升沿延时寄存器 RED=DBRED×T(TBCLK) 相当于延时100个TBCLK时钟周期
EPwm1Regs.DBFED=0; //死区下降沿延时寄存器 FED=DBFED×T(TBCLK) TBCLK就是时基时钟 相当于下降沿不延时
EDIS;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-03-16 16:15 ePWM_hubuduichen\
文件 518 2019-03-16 10:05 ePWM_hubuduichen\.ccsproject
文件 22282 2019-07-14 22:21 ePWM_hubuduichen\.cproject
目录 0 2019-03-16 16:15 ePWM_hubuduichen\.launches\
文件 4818 2019-07-23 16:05 ePWM_hubuduichen\.launches\ePWM_hubuduichen.launch
文件 2840 2019-03-16 10:05 ePWM_hubuduichen\.project
目录 0 2019-03-16 10:08 ePWM_hubuduichen\.settings\
文件 62 2019-03-16 10:05 ePWM_hubuduichen\.settings\org.eclipse.cdt.codan.core.prefs
文件 123 2019-03-16 10:05 ePWM_hubuduichen\.settings\org.eclipse.cdt.debug.core.prefs
文件 208 2019-03-16 10:08 ePWM_hubuduichen\.settings\org.eclipse.core.resources.prefs
文件 7270 2019-03-16 10:05 ePWM_hubuduichen\28335_RAM_lnk.cmd
目录 0 2019-07-25 10:58 ePWM_hubuduichen\Debug\
文件 1343 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_ADC_cal.obj
文件 1651 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_CodeStartBranch.obj
文件 6004 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_CpuTimers.obj
文件 3513 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_CpuTimers.pp
文件 33319 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_DefaultIsr.obj
文件 3542 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_DefaultIsr.pp
文件 15956 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_EPwm.obj
文件 3368 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_EPwm.pp
文件 121458 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_GlobalVariableDefs.obj
文件 2777 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_GlobalVariableDefs.pp
文件 5959 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_PieCtrl.obj
文件 3455 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_PieCtrl.pp
文件 17857 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_PieVect.obj
文件 3455 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_PieVect.pp
文件 16373 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_SysCtrl.obj
文件 3455 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_SysCtrl.pp
文件 1352 2019-07-16 16:52 ePWM_hubuduichen\Debug\DSP2833x_usDelay.obj
文件 406 2019-07-25 10:58 ePWM_hubuduichen\Debug\ccsObjs.opt
文件 27889 2019-07-25 10:58 ePWM_hubuduichen\Debug\ePWM_hubuduichen.map
............此处省略14个文件信息
相关资源
- 28335在线升级bootloader
- 基于DSP的振镜扫描式激光标记控制系
- 基于DSP芯片TMS320F2812的振镜式激光打标
- FFT算法的DSP实现.rar
- F28335的最小系统板原理图及其PCB
- L_8086_8259_8255_8253.pdsprj
- dsp开发中将flash中的代码搬到RAM中执行
- DSP算法实验大作业
- DSP最小系统原理图设计
- DSP2812的LCD1602显示程序
- DSP 基2 FFT 算法详细代码带注释
- TMS320F2812 SCI串口通信 键盘 12864液晶
- DSP最小系统的设计
- DSP2407最小开发板原理图,PCB图
- TI的DSP封装库(很全)
- DSP28335 AD7606源码.rar
- DSP原理及应用试题
- dsp-fir滤波器的设计汇编程序
- 正交解码电路和捕获单元在转角和转
- dsp常用例程汇编语言
- DSP_AD采样程序
- 基于DSP2812的DS18B20温度采集
- 利用DSP F28335 实现了12864显示工程
- DSP28335开发板最小系统
- DSP入门教程(非常经典)
- 基于dsp的FIR低通数字滤波器器设计
- 基于DSP_TMS320C5402的FIR数字滤波器设计
- DSP2812封装库
- TMS320C54x_fir滤波器的实现_dsp_包含源代
- 关于ccs的一个简单图像处理
评论
共有 条评论