//文件 p33pwm6.h#ifndef _P33PWM6_H_
#define _P33PWM6_H_
//#include "p33pwm6.h"#define     FSYNCOEN        (1<<8)//主时基同步使能位
#define     FSYNCEN         (1<<7)//外步时基同步使能位//输入时钟预分频选择
#define     PWMCLK_DIV1     (0<<0)
#define     PWMCLK_DIV2     (1<<0)
#define     PWMCLK_DIV4     (2<<0)
#define     PWMCLK_DIV8     (3<<0)
#define     PWMCLK_DIV16        (4<<0)
#define     PWMCLK_DIV32        (5<<0)
#define     PWMCLK_DIV64        (6<<0)#define     V_PTPER         720//1000 //主控时基周期值#define  POH1_ValidH         IOCON1 &= ~(1<<13) //上管引脚高电平有效
#define POH1_ValidL         IOCON1 |= (1<<13) //上管引脚低电平有效
#define POH2_ValidH         IOCON2 &= ~(1<<13) //上管引脚高电平有效
#define POH2_ValidL         IOCON2 |= (1<<13) //上管引脚低电平有效
#define POH3_ValidH         IOCON3 &= ~(1<<13) //上管引脚高电平有效
#define POH3_ValidL         IOCON3 |= (1<<13) //上管引脚低电平有效#define     PWMAH_ENB   IOCON1bits.OVRENH = 0
#define     PWMBH_ENB   IOCON2bits.OVRENH = 0
#define     PWMCH_ENB   IOCON3bits.OVRENH = 0
#define     PWMAH_DIS   IOCON1bits.OVRENH = 1
#define     PWMBH_DIS   IOCON2bits.OVRENH = 1
#define     PWMCH_DIS   IOCON3bits.OVRENH = 1//===============================================
extern void Init_Pwm6(uint16 InClkdiv,uint16 CycPwm) ;
extern void ToPwmValue(uint16 Tcon) ;#endif //文件 p33pwm6.c#include "global.h"
#include "p33pwm6.h"//***************************************
// 函数名称:Init_Pwm6
// 函数功能:初始化PWM
// 入口参数:PWM时钟分频 PWM周期值
// 出口参数:无
// 返回值:无
// pwm 的时钟源为Fosc (即系统时钟)
//***************************************
void Init_Pwm6(uint16 InClkdiv,uint16 CycPwm)
{PTCON = 0x0000 ; //PWM模块禁止 每次比较产生触发事件PTCON2 = InClkdiv ; //输入时钟预分频PTPER = CycPwm ; //主控周期值PHASE1 = CycPwm  ; //主移相寄存器PHASE2 = CycPwm  ;PHASE3 = CycPwm ;SEVTCMP = 0X0000 ; //特殊事件比较计数值位CHOP = 0X0000 ; //斩波时钟发生器-- 禁止MDC = 0x0000 ; //主控占空比值PDC1 = 0x0000 ; //pwm占空比寄存器PDC2 = 0x0000 ;PDC3 = 0x0000 ;
/*//PTPER 提供周期 mdc为PWM提供占空比PWMCON1 = 0X0180 ; //禁止死区控制 PWMCON2 = 0X0180 ; //禁止死区控制PWMCON3 = 0X0180 ; //禁止死区控制
*///PHASEx 提供周期 PDCx为PWM提供占空比PWMCON1 = 0X0280 ; //禁止死区控制 PWMCON2 = 0X0280 ; //禁止死区控制PWMCON3 = 0X0280 ; //禁止死区控制/*//PHASEx 提供周期 PDCx为PWM提供占空比PWMCON1 = 0X0380 ; //禁止死区控制 PWMCON2 = 0X0380 ; //禁止死区控制PWMCON3 = 0X0380 ; //禁止死区控制
*/DTR1 = 0X0000 ; //死区寄存器DTR2 = 0X0000 ;DTR3 = 0X0000 ;ALTDTR1 = 0X0000 ; //备用死区寄存器ALTDTR2 = 0X0000 ;ALTDTR3 = 0X0000 ;TRGCON1 = 0X0000 ; //PWM触发控制寄存器TRGCON2 = 0X0000 ;TRGCON3 = 0X0000 ;
/*
PWM模块控制H管 GPIO控制L管
PWM IO引脚模式处于独立模式
*/IOCON1 = 0X8c00 ; //PWM IO 控制寄存器 IOCON2 = 0X8c00 ;IOCON3 = 0X8c00 ;POH1_ValidH ; //上管引脚 高电平有效POH2_ValidH ;POH3_ValidH ;    TRIG1 = 0X0000 ;//PWM主触发比较值寄存器TRIG2 = 0X0000 ;TRIG3 = 0X0000 ;//PWM故障限流控制寄存器  禁止限流 禁止故障输入FCLCON1 = 0X0003 ;FCLCON2 = 0X0003 ;FCLCON3 = 0X0003 ;LEBCON1 = 0X0000 ;//前沿消隐控制寄存器LEBCON2 = 0X0000 ;LEBCON3 = 0X0000 ;LEBDLY1 = 0X0000 ; //前沿消隐延时寄存器 限流和故障输入消隐LEBDLY2 = 0X0000 ;LEBDLY3 = 0X0000 ;AUXCON1 = 0X0000 ; //PWM附属控制寄存器    AUXCON2 = 0X0000 ;AUXCON3 = 0X0000 ;  PTCON |= (FSYNCOEN|FSYNCEN) ;//主时基同步使能//当PWM不使能时 PWMH PWML管脚输出的电平状态//第1位为上管 第0位为下管IOCON1bits.OVRDAT = 0X00 ; //PWM禁止时 PWMH PWML输出0IOCON1bits.OVRDAT = 0X00 ; //IOCON1bits.OVRDAT = 0X00 ; //PWMCON1 |= 0X0001 ; //立即更新有效位 PWMCON2 |= 0X0001 ; //立即更新有效位 PWMCON3 |= 0X0001 ; //立即更新有效位 PTCON = 0x8000 ;//PWM模块使能
}
//***************************************
// 函数名称:Init_Pwm6
// 函数功能:初始化时钟
// 入口参数:时钟来源选择 处理器与CPU时钟分频比 pll倍频比
// 出口参数:无
// 返回值:无
//***************************************
void ToPwmValue(uint16 Tcon)
{PDC1 = Tcon ; //pwm占空比寄存器PDC2 = Tcon ;PDC3 = Tcon ;//   MDC = Tcon; //主控占空比值
}//应用实例void main(void)
{uint16 g_wTmp1 ;//初始化PWM//独立时期 独立占空比 PWM固定频率16KInit_Pwm6(PWMCLK_DIV8,V_PTPER) ;//Fosc/8 16k pwm 最大占空比值为720while(1){ToPwmValue(200) ; //设置PWM占空比    PWMAH_ENB ; //输出PWM到H1管PWMAH_DIS ;//禁止输出PWM到H1管}}

转载于:https://www.cnblogs.com/suncoolcat/p/3397949.html

dsPIC33EP 高速PWM模块初始化设置及应用相关推荐

  1. 电商宝打单发货模块初始化设置

    在使用打单发货功能前首先需要对快递单模板.发货单模板.发件人信息进行设置,否则将无法正常打印.另外,如电脑没有安装打印控件的话,在页面上方通常会提示[安装打印控件],安装之后关闭工作台重新打开就可以了 ...

  2. DSP PWM 模块原理及使用

    DSP PWM 模块原理及使用 F28027有8路PWM(四个模块),4路HRPWM,特别对设计高精度电源提供了方便,每个PWM模块中又包括以下几个子模块:时基(Time-base)模块.计数比较(C ...

  3. DSP芯片F2803x系列之PWM模块及高精度PWM使用

    DSP芯片F2803x之ePWM模块 文章目录 1 ePWM模块概述 2 ePWM模块构成 3 ePWM各子模块 3.1 TB模块 3.2 CC模块 3.3 AQ模块 3.4 DB模块 3.5 PC模 ...

  4. STM32F103的映射的介绍、GPIO端口初始化设置和点流水灯详细操作

    文章目录 一.STM32F103的映射介绍 1.地址映射介绍 2.寄存器映射的介绍 二.GPIO端口的初始化设置 1.GIPO简介 2.时钟配置 3.输入输出模式设置 4.最大速率设置 三.实例--流 ...

  5. RW007 高速 WiFi 模块使用BLE主机功能连接 BLE 从机设备示例

    RW007 高速 WiFi 模块使用BLE主机功能连接 BLE 从机设备示例 在本文档中将会从零开始说明如何使用 RW007 的 BLE 主机功能去连接一个BLE串口透传设备,实现数据交互的功能. 硬 ...

  6. 【蓝桥杯嵌入式】比赛笔记(2)根据固件库快速配置各模块初始化

    [蓝桥杯嵌入式]比赛笔记(2)根据固件库快速配置各模块初始化 因为蓝桥杯比赛时间很短,并且如果自己去记忆各模块初始化的话,也难免有问题,所以这里给出一个通过固件库的快速初始化模块的方法. 比赛提供固件 ...

  7. nginx源码分析之模块初始化

    在nginx启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...

  8. 嵌入式davinci电路元素基础和PWM模块

    1,DAC_OUT和DAC_OUTB是AD9912输出的差分信号. 2,电容器储存电荷的能力,常用的单位是F.uF.nF.pFUF大了好还是UF小了好,要根据电路自身需要而设计, 要看电路滤波是在高频 ...

  9. HC-SR04模块初始化

    在进行初始化的时候我们首先要了解超声波模块的工作原理 VCC 供 5V电源,GND 为地线,TRIG 触 发 控 制 信 号 输入,ECHO 回响信号输出等四个接口端 最后看时序图,也就是模块初始化的 ...

最新文章

  1. java 之 面试题-银行业务调度
  2. webSocket使用心跳包实现断线重连
  3. html一张图片用两种滤镜,HTML图片CSS滤镜—灰度效果
  4. java maven module_java – Maven JDK9模块:无法解析module-info
  5. 【029】获取选择要素的属性
  6. 两个苹果手机怎么传通讯录_苹果手机怎么导入通讯录?教你换机快速导入
  7. 跨境商家为什么要建自己的独立站?
  8. 使用feof()判断文件结束时会多输出内容的原因
  9. 中功率继电器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  10. ubuntu上安装rsync+sersync
  11. jmeter 中 Client implementation HttpClient4和java区别实践一
  12. RX8010/RX-8025T测试说明
  13. 计算机在桌面被删了如何恢复,桌面文件被删除怎么恢复?电脑文件误删恢复教程...
  14. 基于SSM的志愿者管理系统
  15. 精通CSS-网页排版
  16. 值得推荐五个编程学习的网站
  17. 三分搜索--hdu2241 考研路茫茫——早起看书
  18. opencv-python 视频抽帧成一张张图片
  19. python创建工作簿_「总结篇」Python中所有的Excel操作技巧
  20. 中国战队Newbee夺DOTA2世界冠军

热门文章

  1. 去哪儿-14-vuex_localstorage
  2. OpenCV--CvMemStorage
  3. 【opencv】双目视觉下空间坐标计算/双目测距 6/13更新(转载)
  4. OpenCV中膨胀和腐蚀结构元素的创建
  5. Android Studio 安装 NDK(Mac OX)
  6. 区块链教程(三):Solidity编程基础
  7. Java7并发编程指南——第七章:定制并发类
  8. CSU 1114 平方根大搜索
  9. Python GUI界面编程初步 02 - Tkinter基础
  10. QT 003 stack widget 层叠菜单的使用 - 6-04正在编辑中