GPIO Output register

This commit is contained in:
Romain Goyet
2015-05-03 12:31:12 +02:00
parent d39fe7f444
commit 526798cfb9
2 changed files with 28 additions and 1 deletions

View File

@@ -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);
}

View File

@@ -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);