// let's write blinky.c #define LED_ADDR ((volatile char*)0xC000) #define led_write(x) (*LED_ADDR = (x)) #define CYCLES_PER_MS 6666 // ish void busy_sleep_1ms() { for (int i = 0; i < CYCLES_PER_MS; ++i) { // nothing } } /** waits a general amount of time */ void busy_sleep(int ms) { for (int i = 0; i < ms; ++i) { busy_sleep_1ms(); } } int main() { int onoff = 0; while (1) { led_write(onoff); busy_sleep(100); onoff++; } return 0; // actually unreachable }