パルスカウンター

16bitのパルスカウンタが2個あります。32bitカウンタ1個としても使用できます。

パルスカウンターはパルス出力のメーター各種や測定装置のパルスをカウントする機能です。スリープ中にパルスカウントが可能なため省電力で動作します。

以下はパルスカウンターの使用例です。パルスカウンターは、パルス的に発生する信号数を数えることと、一定数に達した場合に割り込みを発生する機能を持っています。

※ スリープ中も動作しますのでウェイクアップ用の割り込みとしても利用できます。
※ チャタリング防止(debounce)用の設定もあります。内部の32kHz オシレータを稼働させる必要があります。
※ カウンタは16bitまたは32bitとなりますが、32bitを使用した場合、動作できるカウンタは1系統に限定されます。
※ 割り込み(u32DeviceIdはE_AHI_DEVICE_SYSCTRL, u32ItemBitmapはE_AHI_SYSCTRL_PC0_MASK, E_AHI_SYSCTRL_PC1_MASK)を設定しておきます。 割り込みは、タイマーの項を参照ください。

対応できるパルスについて

100 kHz まで検知可能と半導体のマニュアルには記載されております。また debounce (チャタリングなどの防止のため、連続的な信号が来た場合に反応する) 機能を使用する場合、

・2サンプル連続・・・3.7 kHz
・4サンプル連続・・・2.2 kHz
・8サンプル連続・・・1.2 kHz

まで検出可能です。

APIの利用例

#define PUILSE_INT_COUNT 100

// パルスカウンタの初期設定
PRIVATE void vPulseCounterConfig(void)
{
	// カウンタの設定
	bAHI_PulseCounterConfigure(
		E_AHI_PC_0,
		1,      // 0:RISE, 1:FALL EDGE
		0,      // Debounce 0:off, 1:2samples, 2:4samples, 3:8samples
		TRUE,   // Enable Combined Counter (32bitカウンタ)
		TRUE);  // Enable Interrupt (割り込み)

	// カウンタのセット
	bAHI_SetPulseCounterRef(
		E_AHI_PC_0,
		0x0); // 何か事前に値を入れておく

	// カウンタのスタート
	bAHI_StartPulseCounter(E_AHI_PC_0); // start it
}

...
// パルス数の読み込み
    bAHI_Read32BitCounter(&u32pulse);
    bAHI_Read16BitCounter(E_AHI_PC_0, &u16pulse); // 16bitの場合
                
...
// パルス数のクリアと、割り込みまでのパルス数の設定
    bAHI_Clear32BitPulseCounter();
    bAHI_Clear16BitPulseCounter(E_AHI_PC_0); // 16bitの場合

    bAHI_SetPulseCounterRef(E_AHI_PC_0, PULSE_INT_COUNT);                
TWELITE
TWELITE
DIP
DIP
UART
UART
CUE
CUE
ARIA
ARIA
PAL
PAL
STICK
STICK
spot
SPOT
R3
R3
STARTER KIT
STARTER KIT
アンテナ
アンテナ
製品一覧
製品一覧

モノをつなぐ無線

モノをつなぐ無線
モノの無線
導入事例
導入事例
選び方
選び方
小型
小型
省電力
省電力
多数接続
多数接続
コントロール
コントロール
モニタリング
モニタリング
ソフトウエア
ソフトウエア
親機
親機
中継機
中継機
子機
子機
始め方
始め方

評価開発環境

STAGE
STAGE
STAGE APP
STAGE APP
interactive
アプリ設定
アプリ書換
アプリ書換
プログラミング
プログラミング