Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

補完ベースライン更新アルゴリズム – KBA230646 - Community Translated (JA)

補完ベースライン更新アルゴリズム – KBA230646 - Community Translated (JA)

SivaK_96
Employee
Employee
Welcome!

補完ベースライン更新アルゴリズム – KBA230646 - Community Translated (JA)

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)));

}

0 Likes
89 Views
Contributors