Я разработал простую программу для создания формы волны PWM на dsPIC33EV256GM002, но я не могу ее отключить. Я использовал PWM1 и PWM2, и я бы генерировал PWM-сигнал на выводе PWM1L1 (контакт 26 на DIP-пакете), поддерживая PWM1H1 (контакт 25 в DIP-пакете) в качестве цифрового ввода-вывода. Теория установки регистра ШИМ: IOCON1bits.PENL = 1;/* PWM1L управляется модулем PWM / IOCON1bits.PENH = 0;/ PWM1H управляется модулем GPIO. */ должен это делать, но используя и осциллограф, я заметил, что PWM-сигнал на выводе PWM1H1 с противоположным значением (когда PWM1L равен 1 PWM1H равен 0 и veceversa), даже если он должен быть цифровым I/O.dsPIC33EV256GM002 Настройки PWM
Возможно, вы столкнулись с подобной проблемой?
Спасибо вам большое за вашу помощь и сотрудничество
С уважением
Я использовал следующий код:
TRISBbits.TRISB10 = 0; /* Set as a digital output */
TRISBbits.TRISB11 = 0; /* Set as a digital output */
TRISBbits.TRISB12 = 0; /* Set as a digital output */
TRISBbits.TRISB13 = 0; /* Set as a digital output */
TRISBbits.TRISB14 = 0; /* Set as a digital output */
TRISBbits.TRISB15 = 0; /* Set as a digital output */
LATBbits.LATB10 = 0; /* Set as a digital output */
LATBbits.LATB11 = 0; /* Set as a digital output */
LATBbits.LATB12 = 0; /* Set as a digital output */
LATBbits.LATB13 = 0; /* Set as a digital output */
LATBbits.LATB14 = 0; /* Set as a digital output */
LATBbits.LATB15 = 0; /* Set as a digital output */
PORTBbits.RB10=0;
PORTBbits.RB11=0;
PORTBbits.RB12=0;
PORTBbits.RB13=0;
PORTBbits.RB14=0;
PORTBbits.RB15=0;
PTPER = 4000;
/*~~~~~~~~~~ PWM1 Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
IOCON1bits.PENL = 1; /* PWM1L is controlled by PWM module */
IOCON1bits.PENH = 0; /* PWM1H is controlled by GPIO module */
IOCON1bits.PMOD = 0; /* Select Independent Output PWM mode */
PDC1 = 500; /* Initial Duty cycle */
DTR1 = 0; /* Deadtime setting */
ALTDTR1 = 0; /* Deadtime setting */
PHASE1 = 0; /* No phase shift */
/*~~~~~~~~~~~ PWM2 Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
IOCON2bits.PENH = 1; /* PWM2H is controlled by PWM module */
IOCON2bits.PENL = 0; /* PWM2L is controlled by GPIO module */
IOCON2bits.PMOD = 0; /* Select Independent Output PWM mode */
PDC2 = 2000; /* Initial Duty cycle */
DTR2 = 0; /* Deadtime setting */
ALTDTR2 = 0; /* Deadtime setting */
PHASE2 = 0; /* */
PTCONbits.PTEN = 1; /* Enable the PWM Module */