Code here
Buttonleft and buttonright increment the value when it's beeing pressed,
but buttondown is the problem. the value gets incremented once
eventhough the button hasn't been pressed.
switch(state)
{
case 0:
if(buttonright_pressed()) // -- right
{
state= 1;
}
if(buttondown_pressed()) // left
{
state= 4;
}
if(buttonleft_pressed())
{
state = 5;
}
break;
//-----------------------------------------------------------//
case 1:
if(!(buttonright_pressed()))
{
buttom_timer = TIM_100_MSEC;
state = 3;
}
break;
case 4:
if(!(buttondown_pressed()))
{
buttom_timer = TIM_100_MSEC;
state = 2;
}
break;
case 5:
if(!(buttonleft_pressed()))
{
buttom_timer = TIM_100_MSEC;
state = 6;
}
break;
//------------------------------------------------------------//
case 2:
if(!--buttom_timer)
{
tx_cmd = 1;
xQueueSend(Queue1,&tx_cmd,0);
tx_cmd = 0;
state = 0;
}
break;
case 3:
if(!--buttom_timer)
{
tx_cmd = 2;
xQueueSend(Queue1,&tx_cmd,0);
tx_cmd = 0;
state = 0;
}
break;
case 6:
if(!--buttom_timer)
{
tx_cmd = 3;
xQueueSend(Queue1,&tx_cmd,0);
tx_cmd = 0;
state = 0;
}
break;
}