Dear all,
I'm using cy8c4245axi-483 MCU to control 4 LED with capsense module. Here I have attached code and problem Statement. In this code if we touch 3 times up button and 3 times down button then it is working fine. But if we press up and down button more than 3 times then it doesn't work. Code is just for up and down button. Not included on off button. Please give your valuable. suggestions.
#include "project.h"
unsigned char status=0,flag[10],flag1[10];
uint8 i=0,n=0;
int main(void)
{
CyGlobalIntEnable;
CapSense_Start();
y1_Write(1);
CapSense_InitializeAllBaselines();
for(;;)
{
//CapSense_ClearSensors();
CapSense_ProcessAllWidgets();
while(CapSense_IsBusy());
CapSense_ScanAllWidgets();
status=CapSense_IsWidgetActive(CapSense_UP_WDGT_ID);
if(status)
{
if(flag[1]==0)
{flag[1]=1;y1_Write(1);y2_Write(1);y3_Write(0);y4_Write(0);CyDelay(2);}
else if(flag[1]==1)
{flag[1]=2;y1_Write(1);y2_Write(1);y3_Write(1);y4_Write(0);CyDelay(2);}
else if(flag[1]==2)
{flag[1]=0;CyDelay(2);y1_Write(1);y2_Write(1);y3_Write(1);y4_Write(1);}
while(status)
{
CapSense_ProcessAllWidgets();
while(CapSense_IsBusy());
CapSense_ScanAllWidgets();
status = CapSense_IsWidgetActive(CapSense_UP_WDGT_ID);
}
}
status=CapSense_IsWidgetActive(CapSense_DOWN_WDGT_ID);
if(status)
{
if(flag1[1]==0 && flag[1]==0)
{flag1[1]=1;y1_Write(1);y2_Write(1);y3_Write(1);y4_Write(0);CyDelay(2);}
else if(flag1[1]==0 && flag[1]==1)
{flag1[1]=1;y1_Write(1);y2_Write(0);y3_Write(0);y4_Write(0);CyDelay(2);}
else if(flag1[1]==0 && flag[1]==2)
{flag1[1]=1;y1_Write(1);y2_Write(1);y3_Write(0);y4_Write(0);CyDelay(2);}
else if(flag1[1]==1 && flag[1]==0)
{flag1[1]=2;y1_Write(1);y2_Write(1);y3_Write(0);y4_Write(0);CyDelay(2);}
else if(flag1[1]==1 && flag[1]==1)
{flag1[1]=2;y1_Write(1);y2_Write(0);y3_Write(0);y4_Write(0);CyDelay(2);}
else if(flag1[1]==1 && flag[1]==2)
{flag1[1]=2;y1_Write(1);y2_Write(0);y3_Write(0);y4_Write(0);CyDelay(2);}
else if(flag1[1]==2 && flag[1]==0)
{flag1[1]=0;y1_Write(1);y2_Write(0);y3_Write(0);y4_Write(0);CyDelay(2);}
else if(flag1[1]==2 && flag[1]==1)
{flag1[1]=0;y1_Write(1);y2_Write(0);y3_Write(0);y4_Write(0);CyDelay(2);}
else if(flag1[1]==2 && flag[1]==2)
{flag1[1]=0;y1_Write(1);y2_Write(0);y3_Write(0);y4_Write(0);CyDelay(2);}
while(status)
{
CapSense_ProcessAllWidgets();
while(CapSense_IsBusy());
CapSense_ScanAllWidgets();
status = CapSense_IsWidgetActive(CapSense_DOWN_WDGT_ID);
}
}
}
}
Thanks & Regards,
Prem KB