INL-retro-progdump/firmware/source/avr_gpio.h

38 lines
1.3 KiB
C

#ifndef _avr_gpio_h
#define _avr_gpio_h
#include <avr/io.h>
#define __IO volatile /*!< Defines 'read / write' permissions */
/**
* @brief General Purpose I/O
*/
typedef struct
{
__IO uint8_t PIN; /*!< GPIO port output type register, Address offset: 0x00 */
__IO uint8_t DDR; /*!< GPIO port input data register, Address offset: 0x01 */
__IO uint8_t PORT; /*!< GPIO port output data register, Address offset: 0x02 */
} GPIO_TypeDef;
#define REGISTER_BASE ((uint16_t)0x0000U)
/*!< GPIO peripherals */
#define GPIOA_BASE (REGISTER_BASE + 0x0020)
#define GPIOB_BASE (REGISTER_BASE + 0x0023)
#define GPIOC_BASE (REGISTER_BASE + 0x0026)
#define GPIOD_BASE (REGISTER_BASE + 0x0029)
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)
#define GPIOD ((GPIO_TypeDef *) GPIOD_BASE)
//#define GPIO_MODER_MODER0_Pos (0U)
//#define GPIO_MODER_MODER0_Msk (0x3U << GPIO_MODER_MODER0_Pos) /*!< 0x00000003 */
//#define GPIO_MODER_MODER0 GPIO_MODER_MODER0_Msk
#endif