- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
我在用modus3.0.0开发psoc4时,想要获取sensor的数据,比如:raw、diff、status,我查到有个结构体包含这些数据cy_stc_capsense_sensor_context_t,但是没有找到对应的API,请问下如何获取这个结构体的数据,有没有参考示例?谢谢。
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
如果每一个 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);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
这几个参数没有API可以直接读出来,但是你可以参考链接的方法:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
好的,谢谢。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
如果每一个 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);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Vison,
收到,感谢。