Я использую PIC18F46K22 для измерения времени, которое проходит между двумя событиями (нарастающими фронтами прямоугольной волны), используя режим захвата входа.Я настроил соответствующие регистры, но я не знаю, потому что код не работает;Я покажу вам сводку моего кода.Это часть кода в основной функции, которая настраивает ввод ввода:
//IC configuration
//Input Capture is RC1 (pin 12), TMR1 is used
TRISCbits.RC1 = 1;
CCPTMRS0bits.C2TSEL1 = 0;
CCPTMRS0bits.C2TSEL0 = 0;
PIE2bits.CCP2IE = 1;
PIR2bits.CCP2IF = 0;
//IC on every rising edge
CCP2CONbits.CCP2M3 = 0;
CCP2CONbits.CCP2M2 = 1;
CCP2CONbits.CCP2M1 = 0;
CCP2CONbits.CCP2M0 = 1;
И это код ISR:
void interrupt ISR(void) {
if(PIR2bits.CCP2IF) {
PIR2bits.CCP2IF = 0;
//code...
}
}
Что не так или отсутствует в конфигурации?
Спасибо!