補完ベースライン更新アルゴリズム – KBA230646 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by NoTa_4591161 Version: **
Translation - English: Compliment Baseline Update Algorithm – KBA230646
質問:
バックアップ信号に基づいて、ベースラインにrawカウントの変更を追跡させるにはどうすればよいですか?
回答:
温度や湿度などの環境変化によって引き起こされる誤ったトリガーの問題を解決するには、ベースラインを変更することが非常に重要です。センサーがオンの場合、ベースラインにrawカウントの変更を追跡させることができます。
たとえば、信号の変化に応じて、ベースラインでrawcountの変化を追跡します。
void SetBaseline(uint8 widget, uint16 baseline)
{
CapSense_FLASH_WD_STRUCT const * ptrFlashWdgt;
ptrFlashWdgt = &CapSense_dsFlash.wdgtArray[widget];
((CapSense_RAM_SNS_STRUCT *)ptrFlashWdgt->ptr2SnsRam)->bsln[0] = baseline;
}
uint16 GetDiff(uint8 widget)
{
uint16 diff = 0;
CapSense_FLASH_WD_STRUCT const * ptrFlashWdgt;
ptrFlashWdgt = &CapSense_dsFlash.wdgtArray[widget];
diff = ((CapSense_RAM_SNS_STRUCT *)ptrFlashWdgt->ptr2SnsRam)->diff;
return diff;
}
uint8 i;
signal_backup = GetDiff(i);
/* 現在の信号が最後のデルタ値より大きい場合、最後のデルタ値に基づくベースライン追跡 */
if(GetDiff(i) >= signal_backup)
{
SetBaseline(i, (uint16)(GetBaseline(i) + (GetDiff(i) - signal_backup)));
}