У меня есть следующий код Contiki, где я просто пытаюсь переключить светодиоды на основе переменной «i», которая является нечетной или четной:
while (1) {
etimer_set(&et, CLOCK_SECOND * 2);
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));
i++;
printf("i is %2d\n",i);
if ((i % 2) == 0) {
printf("Now go green.......\n");
leds_on(LEDS_GREEN);
leds_off(LEDS_RED);
} else {
printf("Reds again.......\n");
leds_on(LEDS_RED);
leds_off(LEDS_GREEN);
}
}
Поведение, когда я запускаю его на CC2650, довольно странное. Он всегда печатает i равно 1. i было объявлено над этим кодом.
Однако, если я помещаю код установки таймера из двух строк в начало цикла, я считаю до конца и не имею проблем. Но в этом случае светодиодные переключатели не видны.
Что мне здесь не хватает?
Пожалуйста помоги