Add PORT macro

And use it in the `PIN` macro
This commit is contained in:
Alexander Heldt
2025-01-01 12:22:09 +01:00
parent 2a1e3a41da
commit 3f95f00852
9 changed files with 328 additions and 312 deletions

View File

@@ -21,8 +21,10 @@ struct gpio {
#define GPIO_PORT_OFFSET (0x400U)
#define GPIO(port) ((struct gpio*)(uintptr_t)(GPIO_BASE_ADDR + (GPIO_PORT_OFFSET * port)))
// Create a 8bit number from a port
#define PORT(port) (((port) - 'A') << 8)
// Create a 16bit number from a port and pin
#define PIN(port, num) ((((port) - 'A') << 8) | num)
#define PIN(port, num) (PORT(port) | num)
// get the lower byte from a PIN
#define PINNUM(pin) (pin & 0b1111)
// get the upper byte from a PIN