Доброго времени суток!
Уважаемые, кто-нибудь отлаживал в MPLAB работу в ШИМ-режиме модулей CCP1,CCP2 и CCP3? По CCP1 вопросов нет - все работает как должно. МК- PIC18F45K22. Компилер С18. МPLAB 8.84.
Расклад такой:
CCP1 работает от TMR2,
CCP2 работает от TMR4,
CCP3 работает от TMR6,
CCP4 работает от TMR6,
CCP5 работает от TMR4.
В конфигурационных битах в качестве выводов для CCP2 и CCP3 настроены выводы по умолчанию (RC1 and RB5).
При отладке TMR4 и TMR6 не запускаются и не считают (смотрю в окне watch). При этом сигналы ШИМ от CCP4 и CCP5 в окне Logic Analyzer наблюдаю (каким то образом???), а от модулей CCP2 и CCP3 (к которым подключены эти же таймеры!!!) ничего нет.
Кроме того, если даже к модулям CCP2 и CCP3 подключить TMR2 (достоверно работающий, т.к. с CCP1 сигнал есть), то на их выходах опять же ничего нет.
Это столь серьезные недоработки отладчика????
Код
TRISCbits.RC2 = 0; // Drv1
TRISCbits.RC1 = 0; // Drv2
TRISBbits.RB5 = 0; // Drv3
TRISDbits.RD1 = 0; // Drv4
TRISEbits.RE2 = 0; // Drv5
CCPTMRS0 = 0b10001000; // CCP1 - tmr2,CCP2 - tmr4,CCP3 - tmr6
CCPTMRS1 = 0b00000110; // CCP4 - tmr6,CCP5 - tmr4
PR2 = 0x80; // period pwm
PR4 = 0x90;
PR6 = 0x90;
CCP1CON = 0b00001100; // pwm mode ccp module
CCP2CON = 0b00001100;
CCP3CON = 0b00001100;
CCP4CON = 0b00001100;
CCP5CON = 0b00001100;
CCPR1L = 0x04; // duty cycle
CCPR2L = 0x04;
CCPR3L = 0x04;
CCPR4L = 0x60;
CCPR5L = 0x40;
PIR1bits.TMR2IF = 0;
PIR5bits.TMR4IF = 0;
PIR5bits.TMR6IF = 0;
TMR2 = 0;
TMR4 = 0;
TMR6 = 0;
T2CONbits.T2CKPS = 0x02; // tmr prescaler 1:16
T4CONbits.T4CKPS = 0x02;
T6CONbits.T6CKPS = 0x02;
T2CONbits.TMR2ON = 1;
T4CONbits.TMR4ON = 1;
T6CONbits.TMR6ON = 1;