忍者ブログ
 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

 

拍手[0回]

PR
この記事へのトラックバック
この記事にトラックバックする:
隊長

ブログ内検索

Copyright © [ The 電子工作 ] All rights reserved.
Special Template : 忍者ブログ de テンプレート and ブログアクセスアップ
Special Thanks : 忍者ブログ
Commercial message : [PR]