dsPIC33E comparator interrupt doesn't occur
Actually what Oleg Mazurov said is somewhat right, there is only one comparator event been generated, but it is not because of the way i'm doing the test. The reason is that the comparator enabling(CON = 1) is several lines of code ahead of the comparator interrupt enabling(CMIE = 1), which will lead to one even been triggered and set the CEVT bit as the initial transition of C1OUT before the comparator interrupt enabling, but the copmparator interrupt flag will not be set to enter the ISR as the interrupt is not enabled now, without entering the ISR the CEVT bit won't be cleared, which will block all the rest comparator events as the CEVT bit haven't been cleared.

So the solution is that put the comparator enable and interrupt enable codes side by side:

CM1CONbits.CON = 1; // enable comparator 1
IEC1bits.CMIE = 1; // Enable the interrupt


or clear the CEVT bit before enable the interrupt:

CM1CONbits.CEVT = 0; // clear comparator event bit
IEC1bits.CMIE = 1; // Enable the interrupt