28 lines
478 B
C++
28 lines
478 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
struct Gpio {
|
|
volatile uint32_t data;
|
|
};
|
|
|
|
#define gpio0 ((Gpio*) 0x40000000)
|
|
|
|
inline void ToggleLed(int which) {
|
|
uint8_t data = gpio0->data;
|
|
data ^= (0x1 << which);
|
|
gpio0->data = data;
|
|
}
|
|
|
|
inline void SetLed(int which) {
|
|
uint8_t data = gpio0->data;
|
|
data |= (0x1 << which);
|
|
gpio0->data = data;
|
|
}
|
|
|
|
inline void ClearLed(int which) {
|
|
uint8_t data = gpio0->data;
|
|
data &= ~(0x1 << which);
|
|
gpio0->data = data;
|
|
}
|