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

Version 1

    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[i] = GetDiff(i);

    /* 現在の信号が最後のデルタ値より大きい場合、最後のデルタ値に基づくベースライン追跡 */

    if(GetDiff(i) >= signal_backup[i])

      {

        SetBaseline(i, (uint16)(GetBaseline(i) + (GetDiff(i) - signal_backup[i])));

    }