YPVSコントローラを作成する上で、回転数の把握ってのが必要になります。
これはパルスとパルスの間がどのくらいの時間なのかで判断します。

下の写真はにぎやかしです。
iPhone 046


たとえば、2000rpmですと、一分間に2000回ビートするって事なので、
2000rpm÷60s=0.03sの周期でパルスが発生します。
20000rpmですと、0.003sになりますね。

PIC24はタイマーを持っていて、16ビットと32ビットのものがあります。
しかし、32ビットのものはタイマーを二つ占有してしまいます。
PIC24FJ64GB00Xは、タイマーが3つしか無いので、これは避けたい訳です。
そこで16ビット、つまり65534まででカウントすることを前提とします。

パルスに反応して、タイマー値を確保するInput Captureを利用するとした場合、タイマー2か3を使うことになります。(仕様)
PIC24のタイマー3は既にアナログ入力に使っているのでmタイマー2を使います。

さて、今回外部発信機を使っていて、内部的には32MHzで動作してます。
タイマーは2クロック毎に1カウントアップなので、16MHz。
これをデータシートではFosc/2と表記していますが、1秒間に16,000,000回カウントアップする事になります。
1÷16,000,000一回0.63ns(ナノ秒)ですね。
さらにこのタイマーは、1、8、64、256のプリスケーラを持っていて、例えばプリスケーラを8とした場合、一回のカウントアップのタイミングを、0.63ns×8=5nsにすることが可能です。

整理してみます。
クロック32MHzで、プリスケーラが1,8,64,256の場合、タイマー値は
1,000rpm: 96,000 / 12,000 / 1,500 / 375 
2,000rpm: 48,000 / 6,000 / 750 / 187.5 
・・・
10,000rpm: 9,600 / 1,200 / 150 / 37.5 
11,000rpm: 8,727.3 / 1,090.9 / 136.4 / 34.1 
12,000rpm: 8,000.0  / 1,000.0 / 125.0 / 31.3 

となります。

その後を見ていきますと、
15,000rpm: 6,400.0 / 800.0 / 100.0 / 25.0 
16,000rpm: 6,000.0 / 750.0 / 93.8 / 23.4 
17,000rpm: 5,647.1 / 705.9 / 88.2 / 22.1 
18,000rpm: 5,333.3 / 666.7 / 83.3 / 20.8 
19,000rpm: 5,052.6 / 631.6 / 78.9 / 19.7 
20,000rpm: 4,800.0 / 600.0 / 75.0 / 18.8 

2万rpmの頃、プリスケーラが1:256では、ほとんど、いや全く計測できなくなっています。
1rpm単位まで計測する必要がある場合、プリスケーラが1:1でも10,000rpmまでです。
最小を10rpmとすると、1:1では20,000rpmまで計測できますが、1:8では11,000rpmとなります。
1:8では精度がやや物足りない結果になります。
SDRなら12,000rpm程度まで見れればOKですが、TZR等ではもっと高い回転域まで見ていく必要がありそうです。
例えば、18,000rpmと19,000rpmの間で、パルスは300弱程度しかありません。
10rpm単位で計測するとしても余裕がありませんし、他の処理で割り込み遅延が発生することはちょっと避けなければいけません。

一方1,000rpmから2,000rpm付近では1:1ですとタイマーがオーバーフローしてしまいます。
なぜなら、32MHzクロック、Fosc/2、プリスケーラ1:1とした場合、タイマーは0.63nsでカウントアップします。
16ビットのタイマーが65,535までカウントアップ出来ますので、
65535×0.63ns=40959.38ns
つまり0.0401秒まで計測できます。
0.041秒間隔というのは、24.41spm、つまり1464.87rpmに相当します。
但し、1,500回転以下を切り捨てれば、1:1でも何とかなりそうです。


さて、この後はオートバイ側の都合になりますけど、YPVSコントローラはエンジン停止を認識する必要があります。なぜなら、エンジン停止時にはYPVSをフルオープンにする必要があるからです。(ヤマハ純正の動き)
この為1,500rpm以下で回転数が見れないってのは少々厳しい気がします。
アイドリングがそれ以下になる事などしょっちゅうあるでしょうし、そのたびにYPVSがフルオープン動作になるのは頂けません。
対策としては、ステート調整でなんとか?できないかと。
キーオン状態でSTATE=STOPとしておいて、タイマーは回しておきます。
STATE=STOP状態でパルスが入ったら、STATE=STATINGとして、この状態から
タイマーがオーバーフロー→STATE=STOP 
パルスが来た→STATINGカウントアップ
とすると。
連続でパルスが10回(適当)続けばSTATE=STARTとする。
こんな感じで回避はできるかもです。
この動作ですと、0.041秒×10回で0.4秒パルスが無ければエンジン停止判定となります。
実車で確認すると、大体1秒程度でYPVSフルオープン動作になりますので、20回程度で良さそげですか。