C 高速PWM模块存在的问题

C 高速PWM模块存在的问题,c,embedded,pic,microchip,pwm,C,Embedded,Pic,Microchip,Pwm,我想使用dsPIC33EP32MC204微控制器进行电机控制应用。然而,我无法使高速PWM工作(PWM2H引脚上没有PWM脉冲),即使我遵循用户手册和家庭参考手册。这是我的密码: void Init_PWM(void) { PTCONbits.PTEN = 0; //PWM module is disabled PTCONbits.PTSIDL = 0; // PWMx time base runs in CPU Idle mode PWMCON2bits.FLTI

我想使用dsPIC33EP32MC204微控制器进行电机控制应用。然而,我无法使高速PWM工作(PWM2H引脚上没有PWM脉冲),即使我遵循用户手册和家庭参考手册。这是我的密码:

void Init_PWM(void)
{
    PTCONbits.PTEN = 0;  //PWM module is disabled
    PTCONbits.PTSIDL = 0;  // PWMx time base runs in CPU Idle mode

    PWMCON2bits.FLTIEN = 0;     // Fault interrupt is disabled and the FLTSTAT bit is cleared
    PWMCON2bits.ITB = 0;        // PTPER register provides timing for this PWM generator
    PWMCON2bits.MDCS = 0;       // PDCx register provides duty cycle information for this PWM generator
    PWMCON2bits.MTBS = 0;       // PWM generator uses the primary master time base for synchronization and as the clock source
    PWMCON2bits.IUE = 0;        // Updates to the active PDCx registers are synchronized to the PWMx period boundary
    PTCON2bits.PCLKDIV = 0b000; // PWM Input Clock Prescaler 
    PWMCON2bits.CAM = 0;        // Edge Aligned PWM
    PWMCON2bits.DTC = 0b10;     // Dead time function is disabled

    IOCON2bits.PENH = 1;        // PWMx module controls PWMxH pin
    IOCON2bits.POLH = 0;        //  PWMxH pin is active-high
    IOCON2bits.OVRENH = 0;      // PWMx generator controls PWMxH pin
    IOCON2bits.PMOD = 0b01;     // PWM I/O pin pair is in Redundant Output mode

    PHASE2 = 0;                 // No Phase Shift
    PTPER = 0x4E20;             // Period register 

    PTCONbits.PTEN = 1;         //PWM module is enabled
}
main()函数中的相关代码:

TRISBbits.TRISB12 = 0;

Init_PWM();   
PDC2 = 0x2710; //Duty Cycle  

如果有人能告诉我为什么在完成附加配置后我看不到任何PWM脉冲,我将不胜感激。我做错了什么?谢谢大家!

罗伯特·哈维暂时搁置了这个问题,但给出的理由并不充分。帖子中出现的内容符合指导原则。该问题需要格式方面的帮助,以便代码正确显示。dsPIC33EP32MC204中的PWM功能块难以设置。如果可以的话,我会发布一条带有工作代码链接的评论。请在我的Github上找到回答Barney问题的代码。如果这个问题的搁置被释放,我将发布一个答案。谢谢@Dan1138。您的代码运行正常。此问题包含足够的信息,可以提供完整的答案。在被要求的几分钟内,它就被搁置了。为改进问题而进行的编辑未导致解除保留。根据罗伯特·哈维对另一个问题的回答,他似乎对dsPIC33EP32MC204设备几乎没有相关经验。简单的回答是,一些PWM特殊功能寄存器需要一种特定于设备的方法来解锁写入。请参阅uu内置u write _PWMSFR()函数的编译器文档。