30年ぶりに復活した隊長の電子工作指令本部
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ソース/バイナリ
ソース: MPLAB Project files (FuncGenSrc.zip) 2012/01/05
HEX: FuncGenHex.zip 2012/01/05
開発環境
① MPLAB v8.83 + C30 v3.30b マイクロチップテクノロジージャパン株式会社
全て無料の環境で開発する事が出来ます。
ライタ&デバッガ
② PICkit 2 または PICkit 3 または 対応ライタ
プログラム説明
上記プロジェクトに含まれるソースファイルは、この main.c だけです。
Timer1(16Bit 非同期)でクロックをカウントし、Timer2/3(32Bit 同期)で集計を行います。
メインループでは、各変数値に基づき、表示や、波形、レンジ切換えの処理を実行します。
Timer1の割込み処理では、16ビットオーバーフロー回数をカウントします。
Timer2/3の割込み処理では、トータルカウント値を変数へセットし、Timer1のカウンタを
リセットします。
CN13/14の割込み処理では、波形及びレンジ切換えの為の変数を操作します。
本作では、0.5秒おきに周波数表示を更新します。
0.5秒目のカウンタ値は2倍にして表示し、1秒目のカウンタ値はそのまま表示する・・
という具合です。
0.5秒目のカウンタ値は、1秒目のカウンタ値より、一定の値よりズレが大きい場合にのみ
表示を更新しますので、例えば、1Hzでも、0、1、0、1、・・とはなりません。
後、クリスタルの周波数を変更する場合は、冒頭の下記行を変更してください。
#define FOSC 8000000UL // 現状 8MHz
ソース: MPLAB Project files (FuncGenSrc.zip) 2012/01/05
HEX: FuncGenHex.zip 2012/01/05
開発環境
① MPLAB v8.83 + C30 v3.30b マイクロチップテクノロジージャパン株式会社
全て無料の環境で開発する事が出来ます。
ライタ&デバッガ
② PICkit 2 または PICkit 3 または 対応ライタ
プログラム説明
上記プロジェクトに含まれるソースファイルは、この main.c だけです。
Timer1(16Bit 非同期)でクロックをカウントし、Timer2/3(32Bit 同期)で集計を行います。
メインループでは、各変数値に基づき、表示や、波形、レンジ切換えの処理を実行します。
Timer1の割込み処理では、16ビットオーバーフロー回数をカウントします。
Timer2/3の割込み処理では、トータルカウント値を変数へセットし、Timer1のカウンタを
リセットします。
CN13/14の割込み処理では、波形及びレンジ切換えの為の変数を操作します。
本作では、0.5秒おきに周波数表示を更新します。
0.5秒目のカウンタ値は2倍にして表示し、1秒目のカウンタ値はそのまま表示する・・
という具合です。
0.5秒目のカウンタ値は、1秒目のカウンタ値より、一定の値よりズレが大きい場合にのみ
表示を更新しますので、例えば、1Hzでも、0、1、0、1、・・とはなりません。
後、クリスタルの周波数を変更する場合は、冒頭の下記行を変更してください。
#define FOSC 8000000UL // 現状 8MHz
隊長
カテゴリー
PR