32 lines
504 B
C
32 lines
504 B
C
// 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
|
|
}
|