FC2カウンター

現在の訪問者数

現在の閲覧者数:

カレンダー

07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

プロフィール

剣菱P

Author:剣菱P
剣菱Pと申します。
性別:男
年齢:27
二兎を追って一兎も得られないタイプ

マイコンやプログラミング、ニコニコ動画、雑記等
方向性は見えずとも、ちょっとずつ更新していく予定です!

リンクフリーです。
こんなブログでよかったらよろしくお願いしま~す。

公開メール kenbishiP@gmail.com

検索フォーム

最新記事

最新コメント

カテゴリ

メールフォーム

名前:
メール:
件名:
本文:

月別アーカイブ

最新トラックバック

リンク

ブロとも一覧

ブロとも申請フォーム

ランキング

ランキング参加中です。気が向いたらクリックしてあげてください。


にほんブログ村 その他趣味ブログへ
にほんブログ村 その他趣味ブログ 趣味の工作へ

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PICとサーボ もうすぐ今年も終わりかぁ・・・»

コメント

コメントの投稿













管理者にだけ表示を許可する

PIC 新お勉強 その12(CCP PWM)


前回のCCPのPWMモードについて
理解が足りなかったところを補習


setup_timer_2(mode, period, postscale);
の使い方についてですが、

まずCCPのPWMモードはタイマー2と同期して動作しています。
PWM波形の周期を決めるのはタイマー2です。

このタイマー2は8ビットのタイマーですので0~255までカウントできます。
さらにタイマー2には4ビットのプリスケーラがついています。
このプリスケーラを使うことで2倍 4倍 16倍の時間でカウントできます。

プリスケーラを4ビットフルに使った場合16倍の時間が稼げます
0~255のカウントの1カウントにかかる時間が16倍になるということですね。

次に、タイマー2はメインクロックの4分の1で動作します。

今回は内臓の4MHzを使用しているので 1MHzで動作していることになります。

さらにPR2レジスタというレジスタを使ってタイマー2をどこまでカウントするかを決めることが出来ます。PR2も8ビットのレジスタなので
たとえばPR2を20に設定した場合、タイマー2は0カウントし20に到達した時点でリセットがかかり、また0からカウントを始めます。

以上のことを式にすると

周期(μsec) = (PR2+1) * 4 * Tosc * タイマー2のプリスケール値
Tosc = 1 / Fosc

次に、PWM波形のうちONの時間を決めるために必要になるのが

CCPRxLという10ビット(8+2)のレジスタ
ここに値を設定することで、この値とタイマー2の値が一致したタイミングでPWM波形がOFFになります。
タイマー2が0にリセットされたタイミングでPWMがON
CCPRxLと同じところまでカウントされたら PWMがOFF
タイマー2がPR2と同じになったらカウンターリセット
タイマー2が0にリセットされたのでPWMがON
以下ループ

でPWMが完成します。

ちなみにCCPRxLは10ビットなのにタイマー2は8ビット
つまり10ビットモードで比較するときはタイマー2に2ビット分のプリスケーラがついた状態で比較するみたいです。

あれ?じゃあプリスケーラを1に設定した場合は1ビットしか確保しないわけだけど・・・
その場合はどうなるんだろう?
うーん、まぁ、後で考えようかな・・・
とりあえず、先に進んで

ONの時間を決める式は
デューティ(μsec) = CCPRxL * 4 * Tosc * タイマー2のプリスケール値


今回 周期20msのPWM波形を出そうと思って計算してみたところ

1÷4MHz=0.25(μsec)
周期=256×4×0.25(μsec)×16
  =4096(μsec)

  
つまり機能を最大に使っても4msecが限界。
希望の20msecまでかなり足りない! 5分の1しか確保できない
メインクロックを4MHz÷5=800KHzにしないといけないのかぁ

あんまり遅くて問題が出たりしないかな。ちょっと心配



スポンサーサイト

PICとサーボ もうすぐ今年も終わりかぁ・・・»

コメント

コメントの投稿













管理者にだけ表示を許可する


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。