mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
GPIO Output register
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#define GPIO_OSPEEDR_OFFSET 0x08
|
||||
#define GPIO_PUPDR_OFFSET 0x0C
|
||||
#define GPIO_IDR_OFFSET 0x10
|
||||
#define GPIO_ODR_OFFSET 0x14
|
||||
|
||||
char * GPIO_REGISTER_ADDRESS(GPIO_t gpio, int registerOffset) {
|
||||
char * gpioBaseAddress[11] = {
|
||||
@@ -28,7 +29,6 @@ char * GPIO_REGISTER_ADDRESS(GPIO_t gpio, int registerOffset) {
|
||||
return gpioBaseAddress[gpio] + registerOffset;
|
||||
}
|
||||
|
||||
|
||||
GPIO_MODER_t * GPIO_MODER(GPIO_t gpio) {
|
||||
return (GPIO_MODER_t *)GPIO_REGISTER_ADDRESS(gpio, GPIO_MODER_OFFSET);
|
||||
}
|
||||
@@ -49,3 +49,6 @@ GPIO_IDR_t * GPIO_IDR(GPIO_t gpio) {
|
||||
return (GPIO_IDR_t *)GPIO_REGISTER_ADDRESS(gpio, GPIO_IDR_OFFSET);
|
||||
}
|
||||
|
||||
GPIO_ODR_t * GPIO_ODR(GPIO_t gpio) {
|
||||
return (GPIO_ODR_t *)GPIO_REGISTER_ADDRESS(gpio, GPIO_ODR_OFFSET);
|
||||
}
|
||||
|
||||
@@ -154,3 +154,27 @@ typedef struct {
|
||||
|
||||
GPIO_IDR_t * GPIO_IDR(GPIO_t gpio);
|
||||
|
||||
#pragma mark - GPIO output data registers
|
||||
|
||||
typedef struct {
|
||||
unsigned int ODR0:1;
|
||||
unsigned int ODR1:1;
|
||||
unsigned int ODR2:1;
|
||||
unsigned int ODR3:1;
|
||||
unsigned int ODR4:1;
|
||||
unsigned int ODR5:1;
|
||||
unsigned int ODR6:1;
|
||||
unsigned int ODR7:1;
|
||||
unsigned int ODR8:1;
|
||||
unsigned int ODR9:1;
|
||||
unsigned int ODR10:1;
|
||||
unsigned int ODR11:1;
|
||||
unsigned int ODR12:1;
|
||||
unsigned int ODR13:1;
|
||||
unsigned int ODR14:1;
|
||||
unsigned int ODR15:1;
|
||||
unsigned int :16;
|
||||
} GPIO_ODR_t;
|
||||
|
||||
GPIO_ODR_t * GPIO_ODR(GPIO_t gpio);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user