後閑哲也先生のPIC16F1モジュールの使用説明を参考にさせていただき、CLC機能の設定をする事で、PWM出力でサーボモータを制御する事ができます。
PWMのパルス幅は、2.4msなのに対して、サーボモータの制御信号の周期が20msと長いので工夫が必要です。 Timer1,2 及び SRラッチ,Dフリップフロップを組み合わせて 2.048ms-ON / 20.48ms-周期 のパルスを生成し、制御用のPWMとANDを取って出力をするといった設定となります。
実際この設定を行った所、どうもmTouchの処理(Timer6の割込み処理)が重いようでサーボ側へ出力信号が不安定でした。 そこでCPUのクロックを 8Mhzから32Mhzに上げてなんとか不安定を解消できました。
(※手持ちのUSBオシロの性能が低く、Timer1のオーバーフロー信号を捕まえる事ができずに手間取って時間がかかったのはまた別な話。)20171210+6.0h
0 件のコメント:
コメントを投稿