增强型脉宽调制ePWM实验

1 PWM简介

2 F28335的ePWM介绍









3 PWM输出配置步骤




4 硬件设计

5 软件设计

#include "epwm.h"
#include "leds.h"void EPWM1_Init(Uint16 tbprd)
{EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;   // Disable TBCLK within the ePWMSysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1;  // ePWM1EDIS;InitEPwm1Gpio();EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;      // Stop all the TB clocksEDIS;// Setup SyncEPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;  // Pass through// Allow each timer to be sync'edEPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;EPwm1Regs.TBPHS.half.TBPHS = 0;EPwm1Regs.TBCTR = 0x0000;                  // Clear counterEPwm1Regs.TBPRD = tbprd;EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;    // Count upEPwm1Regs.TBCTL.bit.HSPCLKDIV=TB_DIV1;EPwm1Regs.TBCTL.bit.CLKDIV=TB_DIV1;// Setup shadow register load on ZEROEPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;// Set Compare valuesEPwm1Regs.CMPA.half.CMPA = 0;    // Set compare A valueEPwm1Regs.CMPB = 0;              // Set Compare B value// Set actionsEPwm1Regs.AQCTLA.bit.ZRO = AQ_CLEAR;            // Set PWM1A on ZeroEPwm1Regs.AQCTLA.bit.CAU = AQ_SET;          // Clear PWM1A on event A, up countEPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;            // Set PWM1B on ZeroEPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;          // Clear PWM1B on event B, up countEPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;     // Select INT on Zero eventEPwm1Regs.ETSEL.bit.INTEN = 1;  // Enable INTEPwm1Regs.ETPS.bit.INTPRD = ET_1ST;           // Generate INT on 1st eventEALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;         // Start all the timers syncedEDIS;
}void EPwm1A_SetCompare(Uint16 val)
{EPwm1Regs.CMPA.half.CMPA = val;  //设置占空比
}
void EPwm1B_SetCompare(Uint16 val)
{EPwm1Regs.CMPB = val;  //设置占空比
}void EPWM6_Init(Uint16 tbprd)
{EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;   // Disable TBCLK within the ePWMSysCtrlRegs.PCLKCR1.bit.EPWM6ENCLK = 1;  // ePWM6EDIS;InitEPwm6Gpio();// Setup SyncEPwm6Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;  // Pass through// Allow each timer to be sync'edEPwm6Regs.TBCTL.bit.PHSEN = TB_DISABLE;EPwm6Regs.TBPHS.half.TBPHS = 0;EPwm6Regs.TBCTR = 0x0000;                  // Clear counterEPwm6Regs.TBPRD = tbprd;EPwm6Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;    // Count upEPwm6Regs.TBCTL.bit.HSPCLKDIV=TB_DIV1;EPwm6Regs.TBCTL.bit.CLKDIV=TB_DIV1;// Setup shadow register load on ZEROEPwm6Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;EPwm6Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;EPwm6Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;EPwm6Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;// Set Compare valuesEPwm6Regs.CMPA.half.CMPA = 0;    // Set compare A valueEPwm6Regs.CMPB = 0;              // Set Compare B value// Set actionsEPwm6Regs.AQCTLA.bit.ZRO = AQ_CLEAR;            // Set PWM1A on ZeroEPwm6Regs.AQCTLA.bit.CAU = AQ_SET;          // Clear PWM1A on event A, up countEPwm6Regs.AQCTLB.bit.ZRO = AQ_CLEAR;            // Set PWM1B on ZeroEPwm6Regs.AQCTLB.bit.CBU = AQ_SET;          // Clear PWM1B on event B, up countEPwm6Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;     // Select INT on Zero eventEPwm6Regs.ETSEL.bit.INTEN = 1;  // Enable INTEPwm6Regs.ETPS.bit.INTPRD = ET_1ST;           // Generate INT on 1st eventEALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;         // Start all the timers syncedEDIS;
}void EPwm6A_SetCompare(Uint16 val)
{EPwm6Regs.CMPA.half.CMPA = val;  //设置占空比
}
void EPwm6B_SetCompare(Uint16 val)
{EPwm6Regs.CMPB = val;  //设置占空比
}
#ifndef EPWM_H_
#define EPWM_H_#include "DSP2833x_Device.h"     // DSP2833x 头文件
#include "DSP2833x_Examples.h"   // DSP2833x 例子相关头文件void EPWM1_Init(Uint16 tbprd);
void EPwm1A_SetCompare(Uint16 val);
void EPwm1B_SetCompare(Uint16 val);void EPWM6_Init(Uint16 tbprd);
void EPwm6A_SetCompare(Uint16 val);
void EPwm6B_SetCompare(Uint16 val);#endif /* EPWM_H_ */
#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File#include "leds.h"
#include "time.h"
#include "epwm.h"/*******************************************************************************
* 函 数 名         : main
* 函数功能         : 主函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void main()
{int i=0;unsigned char fx=0;InitSysCtrl();InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();// LED_Init();EPWM6_Init(500);while(1){if(fx==0){i++;if(i==300){fx=1;}}else{i--;if(i==0){fx=0;}}EPwm6A_SetCompare(i);  //i值最大可以取499,因为ARR最大值是499.EPwm6B_SetCompare(300-i);  //i值最大可以取499,因为ARR最大值是499.DELAY_US(10*1000);}
}

增强型脉宽调制ePWM实验相关推荐

  1. 【DSP】EPWM寄存器

    一. EPWM寄存器介绍 增强型脉宽调制器(ePWM)外设是控制商业和工业设备中许多电力电子系统的关键元件.这些系统包括数字电机控制.开关模式电源控制.不间断电源(UPS)和其他形式的电源转换.ePW ...

  2. 北京科技大学计算机控制大作业,北京科技大学计算机控制系统实验报告

    北京科技大学计算机控制系统实验报告 (23页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 17.90 积分 计算机控制技术课程计算机控制技术课程 实验报告 ...

  3. 存储器块清零c语言版,存储器块清零实验报告.doc

    存储器块清零实验报告 篇一:实验1 存储器块清零 实验一 存储器块清零 一.实验目的 1. 掌握存储器读写方法 2. 了解存储器的块操作方法 二.实验设备 1.伟福Lab6000增强型开放式通用实验/ ...

  4. 模型机设计计算机组成原理报告,计算机组成原理 实验报告四 基本模型机设计与实现...

    计算机组成原理 实验报告四 基本模型机设计与实现 计算机组成原理实验报告学院:计算机科学与信息 专业: 班级:姓名 学号 实验组实验时间 指导教师 成绩实验项目名称 实验四.基本模型机设计与实现实验目 ...

  5. 三相锁相 c 语言 程序,轻松玩转DSP——基于TMS320F2833x(Word+PDF+ePub+PPT)

    作者:马骏杰(作者),尹艳浩(作者),王旭东(作者)&0更多 出版:机械工业出版社; 第1版 (2018年12月5日) 服务:人工校对0错代录+录完后精校排版 此为收费服务:会收取文档代录之人 ...

  6. TMS320F28034PNT 德州TI 具有 60MHz 频率、128KB 闪存的 C2000™ 32 位 MCU

    TMS320F28034 的特性 FAE:13723714318 高效 32 位 CPU (TMS320C28x) 60MHz(16.67ns 周期时间) 16 × 16 和 32 × 32 MAC ...

  7. F280049C Crossbar X-BAR

    文章目录 X-BAR 9.1 输入X-BAR 9.2 ePWM.CLB和GPIO输出X-BAR 9.2.1 ePWM X-BAR 9.2.1.1 ePWM X-BAR架构 9.2.2 CLB X-BA ...

  8. F280049C Buffered Digital-to-Analog Converter (DAC)

    目录 DAC 15.1 Introduction 15.1.1 Features 15.1.2 Block Diagram 15.2 Using the DAC 15.2.1 Initializati ...

  9. SPWM脉宽调制技术综合实验

    目录 ​​​​​​​实验目的 实验电路及原理 实验步骤 实验数据 实验分析及结论 实验目的 掌握系统方案的比较与分析确定方法: 掌握各环节电路或子程序的设计过程与方法: 掌握PCB版图设计.电子系统制 ...

最新文章

  1. [LeetCode]题解(python):108-Convert Sorted Array to Binary Search Tree
  2. 对话吴恩达:AI火得还不够,997都满足不了我
  3. Android 自动生成表格
  4. django:bootstrap table加载django返回的数据
  5. pycharm远程连接服务器(docker)调试+ssh连接多次报错
  6. python api测试框架_python api 测试框架
  7. 实验一 分治与递归—全排列 java算法
  8. Mysql知识总结(二)
  9. 关于DOS和命令行的故事
  10. CISCO ASA防火墙ASDM配置
  11. root 帐户无法登陆解决办法
  12. 阿斯加德心灵危机java,雷神的姐姐在阿斯加德不灭的情况下能不能刚灭霸
  13. 群晖Docker部署MySQL服务
  14. 使用Cesium创建3dtiles管线(视频)
  15. 计算机网络状态机,计算机网络之七:TCP协议(1)
  16. uni-app设置页面的背景图片
  17. 大时代已过,小机会可期
  18. C语言 队列 的基本功能和详细代码(含详细注释)
  19. 如何在阿里云服务器构建discuz论坛(快速lamp架构)
  20. [29期] 一个乞丐的故事,什么叫职业人?

热门文章

  1. 【论文阅读】Cross Language Image Matching for Weakly Supervised Semantic Segmentation
  2. IM服务器:我的千万级即时通信服务器集群
  3. 干货|DC-DC PCB Layout 设计要点,5个部分,帮你搞定PCB布板
  4. LocalDateTime日期格式转换问题
  5. 振兴会杜振国,老股民的逆转之路
  6. 云台山风景区,春茶让景色变得更有生机
  7. linux 下 privoxy 设置代理
  8. 基于web的中国古诗词的设计与实现springboot-计算机毕业设计
  9. 隔离日记~记录特别的日子
  10. 初级爬虫工程师需要具备哪些知识