资源简介
基于Microchip的dispic33fj64gs610芯片的定占空比PWM程序,在实验调试中得到测试验证。

代码片段和文件信息
/**************************************************************************************
*名称:PWM调试程序
*时间:2013年3月8日
*作者:huangcheng
*说明:要求PWM6H输出40%占空比方波,PWM7H输出60%占空比方波,PWM6L和PWM7L始终为高(CS240决定)
*其他:如有能力,要求PWM6H与PWM7H输出180°移相
***************************************************************************************/
//“文件包含“处理
#include “p33FJ64GS610.h“
#define BIT7 0x0080
#define IGBTEN_ON PORTD=LATD&(~BIT7)
//配置文件
_FOSCSEL(FNOSC_FRC) //初始振荡器源选择:000=FRC振荡器
_FOSC(FCKSM_CSECMD & OSCIOFNC_ON) //时钟切换模式:01=使能时钟切换,禁止故障保护时钟监视器
//OSC2引脚功能位(XT和HS模式除外):0=OSC2为通用数字I/O引脚
_FWDT(FWDTEN_OFF) //看门狗定时器使能:0=通过用户软件使能/ 禁止看门狗定时器
_FPOR(FPWRT_PWR128) //上电复位定时器值选择位:111=PWRT=128ms
_FICD(ICS_PGD1 & JTAGEN_OFF) //ICD通信通道选择使能位:11=在PGEC1和PGED1上进行通信
//JTAG使能位:0=禁止JTAG
void init_PWM(void);
//main主函数
int main()
{
/******** Configure Oscillator to operate the device at 39.6288Mhz(MIPS)
Fosc= Fin*M/(N1*N2) Fcy=Fosc/2
Fosc= 7.3728*(43)/(2*2)=79.2576Mhz for Fosc Fcy = 40Mhz *********/
/* Configure PLL prescaler PLL postscaler PLL divisor */
PLLFBD=41; /* M=PLLFBD+2=43 */
CLKDIVbits.PLLPOST=0; /* N2=PLLPOST+2=2 */
CLKDIVbits.PLLPRE=0; /* N1=PLLPRE+2=2 */
__builtin_write_OSCCONH(0x01); /* 快速RC振荡器(FRC)→带PLL的快速RC振荡器(FRC) */
__builtin_write_OSCCONL(0x01); /* Enable Switch */
// Wait for Clock switch to occur
while(OSCCONbits.COSC != 0b001); /* Wait for new Oscillator to become FRC with PLL */
while(OSCCONbits.LOCK != 1); /* Wait for Pll to Lock */
/**************** Setup the ADC and PWM clock for 117.9648MHz
N=APSTSCLR=1
((Posc * 16) / APSTSCLR ) = (7.3728 * 16) / 1 = 117.9648MHz
PWM resolution is 1.0596ns. ****************/
ACLKCONbits.FRCSEL = 1; /* 为附属PLL 选择FRC时钟 */
ACLKCONbits.SELACLK = 1; /* 附属振荡器为附属时钟分频器提供源时钟,Auxiliary Oscillator provides clock source for PWM & ADC */
ACLKCONbits.APSTSCLR = 7; /* 附属时钟输出1分频,Divide Auxiliary clock by 1 */
ACLKCONbits.ENAPLL = 1; /* 使能APLL */
while(ACLKCONbits.APLLCK != 1); /* Wait for Auxiliary PLL to Lock */
/************************ IO端口设定 *********************************/
ADPCFG|=0xFFFF;
ADPCFG2|=0x00FF; //所有模拟口 都设为数字IO口
//PWM模块IO初始
PORTD=LATD|0x2038;
PORTD=LATD&0xFF7F;
TRISD&=0xdf47; //IGBTEN初始为低,配置为输出引脚pwm6H、6L、7H、7L配置为输出引脚,初始高电平
init_PWM();
while(1); /* Infinite Loop */
}
void init_PWM()
{
PTPER=47188; /* PTPER = ((1 / 20kHz) / 1.0596ns) = 47188 where 20kHz
is the desired switching frequency and 1.0596ns is PWM resolution. */
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-03-09 11:36 PWM_dspic\
文件 288753 2013-03-09 11:31 PWM_dspic\6KWDCDC-pic.cof
文件 5208 2013-03-09 11:31 PWM_dspic\6KWDCDC-pic.hex
文件 133889 2013-03-09 11:31 PWM_dspic\6KWDCDC-pic.map
文件 1186 2013-03-09 11:35 PWM_dspic\6KWDCDC-pic.mcp
文件 1939 2013-03-09 11:35 PWM_dspic\6KWDCDC-pic.mcs
文件 1911296 2013-03-09 11:35 PWM_dspic\6KWDCDC-pic.mcw
文件 4567 2013-07-19 16:28 PWM_dspic\main.c
文件 256219 2013-03-09 11:31 PWM_dspic\main.o
文件 74557 2012-09-11 15:54 PWM_dspic\p33FJ64GS610.gld
文件 430347 2012-09-11 15:54 PWM_dspic\p33FJ64GS610.h
文件 59 2013-03-11 08:25 PWM_dspic\备注.txt
文件 4554 2013-07-19 16:27 PWM_dspic\程序稿.txt
相关资源
- 可控硅调光,PWM调光,0-10V调光哪个更
- 利用STM32的占空比PWM来控制直流电机
- Microchip FOC AN1292调整指南.zip中文
- PIC选型软件
- Altium Designer 元件库 Microchip 公司PIC全
- stm32多路超声波避障小车,L298N驱动,
- 基于stm32的按键可调pwm
- (并网电压120v)微型逆变器microchip第
- MCC18 V3.35标准评估版本2019重发
- MSP430g2553单片机实现的输出三路PWM,
- MSP430_PWM控制的呼吸灯
- 合泰单片机 双通道ad+两路pwm+oled128
- 基于stc89c52rc单片机的红外遥控小车,
- 基于CC2530单路PWM控制程序
- microchip PIC24F Code Examples
- XC32激活工具
- Microchip XC8/XC16/XC32 破解文件
- 基于STM32F4的PWM程序
- microchip公司的PIC24系列单片机教程程序
- PIC单片机开发的几个问题
- Off-line form of the Michaelis-Menten equation
- DSP320F28035综合例程,sci,i2c,oled,
评论
共有 条评论