#if defined(__dsPIC33F__)
#include "p33fxxxx.h"
#endif
#include <stdio.h>
_FOSCSEL(FNOSC_FRC);
_FOSC(FCKSM_CSECMD & OSCIOFNC_OFF & POSCMD_XT);
// Clock Switching is
// enabled and Fail Safe Clock Monitor is disabled
// OSC2 Pin Function:
// OSC2 is Clock Output
// Primary Oscillator
// Mode: XT Crystal
_FWDT(FWDTEN_OFF);
// 配置位
// void Delay(void);
#include <math.h>
#include <stdio.h>
#define Fcy 8000000/2
//void MCPWM_Inital(void)
//void int main(void)
//{
//MCPWM_Inital(void);
//while(1);
//}
void MCPWM_Inital(void)
{
unsigned int ValuePDC;
unsigned int ValueDT ;
unsigned int DUTYCYCLE;
P1OVDCON=0xff00; //禁用OVDCON
P1TCON=0xa000; //自由模式
PWM1CON1=0x0022; //PWM互补输出,只有PWM1 2输出
PWM1CON2=0; //允许占空比更新
P1SECMP=0; //不使用特殊事件
//PTPER=((40000000)/1000000)-1=39 、100K
P1TPER=39; //根据公式计算出PTPER的值
//ValueDT=4;
P1DTCON1=0x0004; //计算出DT的值,确定DTCON1
//ValuePDC=(147*DUTYCYCLE+1)*2;
P1DC2=32;//ValuePDC; //计算确定占空比寄存器的值
P1DTCON2= 0X0003;
P1FLTACON=0x0000; //故障无效
}
int main(void)
{
MCPWM_Inital();
while(1)
{
}
}
程序如上。。。
|