Правильно, я их никогда не запрещаю. У меня MSP на 6 или 8 Мгц работают. Для 6 Мгц 167 нс на такт. 6 тактов - вход в прерывание, и ещё больше 80 тактов остаётся. А там, если глянуть по листингу, столько не нужно.
343 __interrupt void TIMERB0_isr( void )
\ TIMERB0_isr:
344 {
\ 000000 0D12 PUSH.W R13
\ 000002 0C12 PUSH.W R12
\ 000004 0F12 PUSH.W R15
\ 000006 0E12 PUSH.W R14
345 ( *( *++termo_arr_ptr ).f )();
\ 000008 A252.... ADD.W #0x4, &??termo_arr_ptr
\ 00000C 1F42.... MOV.W &??termo_arr_ptr, R15
\ 000010 AF12 CALL @R15
346 TBCCR0 = TBR + ( *termo_arr_ptr ).del_time;
\ 000012 1F429001 MOV.W &0x190, R15
\ 000016 1E42.... MOV.W &??termo_arr_ptr, R14
\ 00001A 1F5E0200 ADD.W 0x2(R14), R15
\ 00001E 824F9201 MOV.W R15, &0x192
347 }
\ 000022 3E41 POP.W R14
\ 000024 3F41 POP.W R15
\ 000026 3C41 POP.W R12
\ 000028 3D41 POP.W R13
\ 00002A 0013 RETI
Ну а для чтения бита по вызову
CALL @R15 сразу идёт
MOV.B &0x28, R14
Короче и на 8 и на 6 Мгц считывание проходит без проблем.