28 lines
713 B
C++
28 lines
713 B
C++
#include "system.h"
|
|
#include "gpio.h"
|
|
////////////////////////////////////////////////////////////////////////
|
|
static constexpr unsigned ticks = SYSTEM_CORE_CLOCK / 1000u;
|
|
static volatile unsigned counter = 0u;
|
|
extern "C" [[gnu::interrupt]] void SysTick_Handler ();
|
|
////////////////////////////////////////////////////////////////////////
|
|
void SysTick_Handler () {
|
|
SysTick.SR = 0u;
|
|
if (counter) counter -= 1u;
|
|
}
|
|
static void delay (const unsigned dly = 200u) {
|
|
counter = dly;
|
|
while (counter);
|
|
}
|
|
|
|
int main () {
|
|
GpioClass led (GPIOA, 0);
|
|
SysTick.Config (ticks);
|
|
unsigned pass_cnt = 0u;
|
|
for (;;) {
|
|
delay();
|
|
const bool b = pass_cnt & 1u;
|
|
led << b;
|
|
pass_cnt += 1u;
|
|
}
|
|
return 0;
|
|
}
|