Software phase shift fullbridge signal generator

ATmega168Pで動くフェーズシフトフルブリッジ用MOSFET駆動信号の生成プログラムを書きました。
内部のレジスタの名前が一緒なのでATmega328Pでも動くと思いますが、まだ試してません。
それ用のICが安く売ってればこんなん書かなくて良いんだけどね、仕方ないね。

ソフトウェアで無理やり書いた弊害として、シフト幅が狭くなっていて、
11~79%の間でしか波形がシフトできません。
それ以外の区間で波形のシフトをしようとすると波形の周期が倍になったり
予期しない動作をするので、そのような要求が入った場合は弾くようにしてあります。
これは割り込み時間不足によるものなので現状のやり方では多分どうにもならないでしょう。

もっと良いやり方が有るのかもしれないけどとりあえず公開します。
ブラッシュアップしてくれるとうれしいです。

PhaseShift.zip