1 #include "Driver_GPIO.h"
7 extern ARM_DRIVER_GPIO Driver_GPIOA, Driver_GPIOC;
16 void delay(uint32_t t)
18 uint32_t start = gTicks;
19 // modular subtraction is resillient against
20 // up to a single overflow in gTicks
21 while (gTicks - start < t)
27 SystemCoreClockUpdate();
28 SysTick_Config(SystemCoreClock / 1000);
29 NVIC_SetVector(SysTick_IRQn, (uintptr_t)on_tick);
30 NVIC_EnableIRQ(SysTick_IRQn);
33 RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOCEN;
40 ARM_DRIVER_GPIO *ioa = &Driver_GPIOA, *ioc = &Driver_GPIOC;
46 ioa->SetDirection(5, ARM_GPIO_OUTPUT);
49 sample_state button_samples;
50 debounce_init(&button_samples, true, 5);
52 ioa->SetOutput(5, led);
58 &button_samples, ioc->GetInput(13));
59 if (stable && !*stable)
62 ioa->SetOutput(5, led);