Имеется микроконтроллер dsPIC30F5011. Хочу реализовать на нём ШИМ через Output Compare Module, так как у этого модуля есть как раз режим PWM. Всё проинициализировал, задал период и коэффициент заполнения ШИМ (duty cycle - 50%), выбрал Timer2. На соответствующей ноге тыкаюсь осциллографом, ничего нет. Не могу понять в чём проблема. Вроде по даташиту настроил правильно.
#define PERIOD_PWM 12484
#define PERIOD_PWM_div2 6242
WriteTimer2 (0);
OpenTimer2 (T2_ON & T2_GATE_OFF & T2_IDLE_STOP & T2_PS_1_8 & T2_32BIT_MODE_OFF & T2_SOURCE_INT, PERIOD_PWM);
ConfigIntTimer2 (T2_INT_PRIOR_5 & T2_INT_ON);
OpenOC3(OC_IDLE_STOP & OC_TIMER2_SRC & OC_PWM_FAULT_PIN_ENABLE, PERIOD_PWM, PERIOD_PWM_div2);
ConfigIntOC3(OC_INT_PRIOR_0 & OC_INT_ON);
void __attribute__((interrupt, auto_psv)) _T2Interrupt(void) {
IFS0bits.T2IF = 0; // Clear Timer interrupt flag
Nop();
}
void __attribute__((interrupt, auto_psv)) _OC3Interrupt(void) {
IFS1bits.OC3IF = 0; // Clear interrupt flag
}
dsPic30F5011-5013.pdf