Я строю таймер отладки, используя переключатели.
Я ввожу «случай 1», но он не продолжается после if (in_1_timerTimeout)
, и я понятия не имею, почему. Может кто-нибудь выяснить, чего не хватает?
Пока что я проверил, что код существует "case 0" и вводит "case 1", но на этом все заканчивается. У меня такое чувство, что я могу неправильно интерпретировать if (in_1_timerTimeout)
, поэтому я не правильно его использую.
#include "mcc_generated_files/mcc.h"
#include "stdbool.h"
unsigned long in_1_timer = 0;
unsigned long in_1_state = 0;
bool in_1_timerTimeout = false;
bool in_1 = false;
void myInterruptHandler(void)
{
}
void handleInputFilter(void)
{
switch (in_1_state)
{
case 0:
if (!in_button_GetValue())
{
in_1_timer = 1000;
in_1_timerTimeout = false;
in_1_state = 1;
}
break;
case 1:
if (!in_button_GetValue())
{
//programmet kører hertil, men kommer ikke videre til næste "if"
if (in_1_timerTimeout)
{
in_1_state = 2;
in_1 = true;
//out_LED_SetHigh();
}
} else in_1_state = 0;
break;
case 2:
if (in_button_GetValue())
{
in_1_timer = 1000;
in_1_timerTimeout = false;
in_1_state = 3;
}
break;
case 3:
if (in_button_GetValue())
{
if (in_1_timerTimeout)
{
in_1_state = 0;
in_1 = false;
//out_LED_SetLow();
}
} else in_1_state = 2;
break;
}
}
void main(void)
{
SYSTEM_Initialize();
while (1)
{
handleInputFilter();
// Add your application code
}
}