如果每一个 Button 是一个独立的 widget, 可以使用下面三个API。status 分几类,建议你直接从 CapSense_RegisterMap.h 中拷贝宏定义名称来获取你需要的 status,这样比写一个 API 更方便。
uint16 BtnGetRaw(uint8 widget)
{
uint16 raw = 0u;
CapSense_FLASH_WD_STRUCT const * ptrFlashWdgt;
ptrFlashWdgt = CapSense_dsFlash.wdgtArray[widget];
raw = ((CapSense_RAM_SNS_STRUCT *)ptrFlashWdgt->ptr2SnsRam)->raw[0];
return (raw);
}
uint16 BtnGetBaseline(uint8 widget)
{
uint16 bsln = 0u;
CapSense_FLASH_WD_STRUCT const * ptrFlashWdgt;
ptrFlashWdgt = CapSense_dsFlash.wdgtArray[widget];
bsln = ((CapSense_RAM_SNS_STRUCT *)ptrFlashWdgt->ptr2SnsRam)->bsln[0];
return (bsln);
}
CapSense_THRESHOLD_TYPE BtnGetDiff(uint8 widget)
{
CapSense_THRESHOLD_TYPE diff = 0u;
CapSense_FLASH_WD_STRUCT const * ptrFlashWdgt;
ptrFlashWdgt = CapSense_dsFlash.wdgtArray[widget];
diff = ((CapSense_RAM_SNS_STRUCT *)ptrFlashWdgt->ptr2SnsRam)->diff;
return (diff);
}
如果是一个 widget 下有等多个 sensor 的情况,比如 touchpad, 那么就需要使用下面这三个 API 来获取每个 sensor 的 rw/bl/df 信息, 但需要吧 touchpad0 更换为实际的 widget 名称
uint16 TouchpadGetRaw(uint8 sensor)
{
uint16 raw = 0u;
CapSense_RAM_STRUCT *ptrDsRam;
ptrDsRam = CapSense_dsRam;
raw = ptrDsRam->snsList.touchpad0[sensor].raw[0];
return (raw);
}
uint16 TouchpadGetBaseline(uint8 sensor)
{
uint16 bsln = 0u;
CapSense_RAM_STRUCT *ptrDsRam;
ptrDsRam = CapSense_dsRam;
bsln = ptrDsRam->snsList.touchpad0[sensor].bsln[0];
return (bsln);
}
CapSense_THRESHOLD_TYPE TouchpadGetDiff(uint8 sensor)
{
CapSense_THRESHOLD_TYPE diff = 0u;
CapSense_RAM_STRUCT *ptrDsRam;
ptrDsRam = CapSense_dsRam;
diff = ptrDsRam->snsList.touchpad0[sensor].diff;
return (diff);
}
如果每一个 Button 是一个独立的 widget, 可以使用下面三个API。status 分几类,建议你直接从 CapSense_RegisterMap.h 中拷贝宏定义名称来获取你需要的 status,这样比写一个 API 更方便。
uint16 BtnGetRaw(uint8 widget)
{
uint16 raw = 0u;
CapSense_FLASH_WD_STRUCT const * ptrFlashWdgt;
ptrFlashWdgt = CapSense_dsFlash.wdgtArray[widget];
raw = ((CapSense_RAM_SNS_STRUCT *)ptrFlashWdgt->ptr2SnsRam)->raw[0];
return (raw);
}
uint16 BtnGetBaseline(uint8 widget)
{
uint16 bsln = 0u;
CapSense_FLASH_WD_STRUCT const * ptrFlashWdgt;
ptrFlashWdgt = CapSense_dsFlash.wdgtArray[widget];
bsln = ((CapSense_RAM_SNS_STRUCT *)ptrFlashWdgt->ptr2SnsRam)->bsln[0];
return (bsln);
}
CapSense_THRESHOLD_TYPE BtnGetDiff(uint8 widget)
{
CapSense_THRESHOLD_TYPE diff = 0u;
CapSense_FLASH_WD_STRUCT const * ptrFlashWdgt;
ptrFlashWdgt = CapSense_dsFlash.wdgtArray[widget];
diff = ((CapSense_RAM_SNS_STRUCT *)ptrFlashWdgt->ptr2SnsRam)->diff;
return (diff);
}
如果是一个 widget 下有等多个 sensor 的情况,比如 touchpad, 那么就需要使用下面这三个 API 来获取每个 sensor 的 rw/bl/df 信息, 但需要吧 touchpad0 更换为实际的 widget 名称
uint16 TouchpadGetRaw(uint8 sensor)
{
uint16 raw = 0u;
CapSense_RAM_STRUCT *ptrDsRam;
ptrDsRam = CapSense_dsRam;
raw = ptrDsRam->snsList.touchpad0[sensor].raw[0];
return (raw);
}
uint16 TouchpadGetBaseline(uint8 sensor)
{
uint16 bsln = 0u;
CapSense_RAM_STRUCT *ptrDsRam;
ptrDsRam = CapSense_dsRam;
bsln = ptrDsRam->snsList.touchpad0[sensor].bsln[0];
return (bsln);
}
CapSense_THRESHOLD_TYPE TouchpadGetDiff(uint8 sensor)
{
CapSense_THRESHOLD_TYPE diff = 0u;
CapSense_RAM_STRUCT *ptrDsRam;
ptrDsRam = CapSense_dsRam;
diff = ptrDsRam->snsList.touchpad0[sensor].diff;
return (diff);
}
举报