Capsense的扫描可以使用阻塞方式和非阻塞的方式。
阻塞的方式:
CyGlobalIntEnable;
CapSense_CSD_Start();//在CapSense_CSD_Start();之前必须调用CyGlobalIntEnable;;因为在capsense start的过程中要调用系统很多的系统中断
CapSense_CSD_InitializeAllBaseLines();
for(;;)
{
CapSense_CSD_UpdataEnablebaseLines();
CapSense_CSD_ScanEnableWidgets();
while(CapSense_CSD_IsBusy()!=0)
{ 睡眠
}//等待扫描完成,在等待的过程中,可以让片子睡眠,然后扫描结束以后,capsense会产生中断,通过这种方式唤醒片子,实现低功耗
}
非阻塞的方式:
CapSense_CSD_Start();
CapSense_CSD_InitializeAllBaseLines();
if(CapSense_CSD_IsBusy())
{
CapSense_CSD_UpdataEnablebaseLines();
CapSense_CSD_ScanEnableWidgets();
if(Capsense_checkIsWidgeActive(capsense_Button_BIN))
{
//用户代码;
}
}
继续会更新,总结篇之watchdog~希望大神多给指导:handshake |