• 大小: 3KB
    文件类型: .c
    金币: 2
    下载: 1 次
    发布日期: 2022-10-03
  • 语言: 其他
  • 标签: dspic  

资源简介

dspic30f4011,单片机。无刷直流电机PWM开环控制。

资源截图

代码片段和文件信息

#include
#include 
#include 


#define Fcy 29491200
#define FPWM_default 20000   
#define MILLISEC 7373*4 //1ms


#define  P1L  _RE0
#define  PIH  _RE1

#define  P2L  _RE2 
#define  P2H  _RE3

#define  P3L  _RE4
#define  P3H  _RE5

unsigned char HallValue = 0;
unsigned int StateLoTable[] = {0x00000x1200 0x0900 0x1800 0x24000x0600 0x21000x0000};

/********************************************************************
InitMCPWM,对PWM 做以下初始化:
1. FPWM = 16000 hz
2.  独立的PWM
3.  使用OVDCON 控制输出
*********************************************************************/
void InitMCPWM(void)
{
PTCON = 0x0000;
// PTPER = Fcy/FPWM_default - 1;
PTPER = 1474;
PWMCON1 = 0x0700;  // pwmI/O引脚对处于互补模式复位后使能PWM 输出
PWMCON2 = 0x0000;
// PWMCON2 = 0x0002; // 特殊事件后分频比设为1:1,使能占空比更新,且与PWM时基同步


PDC1 = 500; //  将PWM1、PWM2 和PWM3 初始化为0x0A00
PDC2 = 500;
PDC3 = 500;
IEC2bits.PWMIE=0; //禁止PWM中断
// SEVTCMP = PTPER;
PTCON = 0x8000; //  启动PWM
}

/********************************************************************
InitCN,对CN 做以下初始化:
1. 使能CN3 、CN4 和CN5
2. 使能内部上拉
*********************************************************************/
void InitCN(void)
{
_TRISB1=1;
_TRISB2=1;
_TRISB3=1;
CNEN1 = 0x0038; //  使能CN3 、CN4 和CN5
CNPU1 = 0x0038; //  使能内部上拉

评论

共有 条评论