You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.4 KiB
C
56 lines
1.4 KiB
C
|
2 years ago
|
#include <stdint.h> // C99 standard integers
|
||
|
5 years ago
|
#include "bsp.h"
|
||
|
|
|
||
|
|
#if 0
|
||
|
|
/* background code: sequential with blocking version */
|
||
|
2 years ago
|
int main(void) {
|
||
|
5 years ago
|
BSP_init();
|
||
|
|
while (1) {
|
||
|
|
BSP_ledGreenOn();
|
||
|
|
BSP_delay(BSP_TICKS_PER_SEC / 4U);
|
||
|
|
BSP_ledGreenOff();
|
||
|
|
BSP_delay(BSP_TICKS_PER_SEC * 3U / 4U);
|
||
|
|
}
|
||
|
|
|
||
|
|
//return 0;
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
/* background code: non-blocking version */
|
||
|
2 years ago
|
int main(void) {
|
||
|
5 years ago
|
BSP_init();
|
||
|
|
while (1) {
|
||
|
|
/* Blinky polling state machine */
|
||
|
|
static enum {
|
||
|
|
INITIAL,
|
||
|
|
OFF_STATE,
|
||
|
|
ON_STATE
|
||
|
|
} state = INITIAL;
|
||
|
|
static uint32_t start;
|
||
|
|
switch (state) {
|
||
|
|
case INITIAL:
|
||
|
|
start = BSP_tickCtr();
|
||
|
|
state = OFF_STATE; /* initial transition */
|
||
|
|
break;
|
||
|
|
case OFF_STATE:
|
||
|
|
if ((BSP_tickCtr() - start) > BSP_TICKS_PER_SEC * 3U / 4U) {
|
||
|
|
BSP_ledGreenOn();
|
||
|
|
start = BSP_tickCtr();
|
||
|
|
state = ON_STATE; /* state transition */
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
case ON_STATE:
|
||
|
|
if ((BSP_tickCtr() - start) > BSP_TICKS_PER_SEC / 4U) {
|
||
|
|
BSP_ledGreenOff();
|
||
|
|
start = BSP_tickCtr();
|
||
|
|
state = OFF_STATE; /* state transition */
|
||
|
|
}
|
||
|
|
break;
|
||
|
|
default:
|
||
|
|
//error();
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//return 0;
|
||
|
|
}
|