Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
gpio.h
См. документацию.
1 
29 #ifndef GPIO_H_
30 #define GPIO_H_
31 
32 #include "types.h"
33 
37 typedef struct
38 {
39  __RW uint32_t DATA;
40  __RW uint32_t DATAOUT;
41  __RW uint32_t RESERVED0[2];
42  __RW uint32_t OUTENSET;
43  __RW uint32_t OUTENCLR;
44  __RW uint32_t ALTFUNCSET;
45  __RW uint32_t ALTFUNCCLR;
46  __RW uint32_t INTENSET;
47  __RW uint32_t INTENCLR;
48  __RW uint32_t INTTYPESET;
49  __RW uint32_t INTTYPECLR;
50  __RW uint32_t INTPOLSET;
51  __RW uint32_t INTPOLCLR;
52  __RW uint32_t INTSTATUSCLEAR;
53  __RW uint32_t RESERVED1[241];
54  __RW uint32_t LB_MASKED[256];
55  __RW uint32_t UB_MASKED[256];
56 }GPIO_T;
57 
61 typedef enum GPIOPINT_MODE
62 {
68 
69 
75 #define GPIO_IntEnable(gl_gpio_t, gl_gpio_pin) (((GPIO_T*)gl_gpio_t)->INTENSET = gl_gpio_pin)
76 
78 #define GPIO_IntDisable(gl_gpio_t, gl_gpio_pin) (((GPIO_T*)gl_gpio_t)->INTENCLR = gl_gpio_pin)
79 
81 #define GPIO_IntClear(gl_gpio_t, gl_gpio_pin) (((GPIO_T*)gl_gpio_t)->INTSTATUSCLEAR = gl_gpio_pin)
82 
93 void GPIO_WriteDirBit(GPIO_T *pGPIO, uint8_t Pin_number, bool Dir);
94 
105 void GPIO_SetDir(GPIO_T *pGPIO, uint32_t bitVal, bool dir);
118 void GPIO_SetAltFunc(GPIO_T *pGPIO, uint16_t Pin_number, bool AltSet);
119 
127 void GPIO_WritePort(GPIO_T *pGPIO, uint16_t Pin_number, uint16_t val);
128 
139 void GPIO_WritePortBit(GPIO_T *pGPIO, uint8_t pin, bool val);
140 
146 uint32_t GPIOOUT_ReadPort(GPIO_T *pGPIO);
147 
153 uint32_t GPIOIN_ReadPort(GPIO_T *pGPIO);
154 
162 bool GPIOOUT_ReadPortBit(GPIO_T *pGPIO, uint8_t pin);
163 
171 bool GPIOIN_ReadPortBit(GPIO_T *pGPIO, uint8_t pin);
172 
180 bool GPIO_ReadDirBit(GPIO_T *pGPIO, uint8_t pin);
181 
187 uint32_t GPIO_GetDir(GPIO_T *pGPIO);
188 
196 uint32_t GPIO_GetAltFunc(GPIO_T *pGPIO);
197 
210 void GPIO_IntConfig(GPIO_T *pGPIO, uint32_t Pin_number, GPIOPINT_MODE_T IntMode);
211 
217 uint32_t GPIO_IntGetStatus(GPIO_T *pGPIO);
218 
225 GPIOPINT_MODE_T GPIO_GetIntConfigPin(GPIO_T *pGPIO, uint8_t pin);
226 
227 
228 
229 #endif /* GPIO_H */
void GPIO_SetAltFunc(GPIO_T *pGPIO, uint16_t Pin_number, bool AltSet)
Установить режим GPIO или альтернативной функции.
Definition: gpio.c:88
void GPIO_WritePortBit(GPIO_T *pGPIO, uint8_t pin, bool val)
Установка состояния на выводе порта GPIO.
Definition: gpio.c:130
enum GPIOPINT_MODE GPIOPINT_MODE_T
Тип - профиль для установки типа и полярности события прерывания.
Структура для доступа к регистрам GPIO.
Definition: gpio.h:37
Этот файл содержит структуры, макросы и функции необходимые для работы с дополнительными типами...
uint32_t GPIOOUT_ReadPort(GPIO_T *pGPIO)
Считать состояние выводов сконфигурированных на выход
Definition: gpio.c:147
__RW uint32_t ALTFUNCCLR
Definition: gpio.h:45
__RW uint32_t INTTYPESET
Definition: gpio.h:48
#define __RW
Definition: types.h:39
__RW uint32_t OUTENCLR
Definition: gpio.h:43
bool GPIOIN_ReadPortBit(GPIO_T *pGPIO, uint8_t pin)
Считать состояние вывода сконфигурированного на вход
Definition: gpio.c:182
uint32_t GPIO_IntGetStatus(GPIO_T *pGPIO)
Взять текущий статус прерываня для каждого вывода
Definition: gpio.c:265
bool GPIO_ReadDirBit(GPIO_T *pGPIO, uint8_t pin)
Считать конфигурацию вывода GPIO.
Definition: gpio.c:194
uint32_t GPIOIN_ReadPort(GPIO_T *pGPIO)
Считать состояние выводов сконфигурированных на вход
Definition: gpio.c:158
__RW uint32_t OUTENSET
Definition: gpio.h:42
__RW uint32_t INTTYPECLR
Definition: gpio.h:49
uint32_t GPIO_GetDir(GPIO_T *pGPIO)
Считать конфигурацию выводов GPIO.
Definition: gpio.c:204
__RW uint32_t ALTFUNCSET
Definition: gpio.h:44
__RW uint32_t INTENSET
Definition: gpio.h:46
void GPIO_WriteDirBit(GPIO_T *pGPIO, uint8_t Pin_number, bool Dir)
Сконфигурировать вывод порта GPIO.
Definition: gpio.c:42
bool GPIOOUT_ReadPortBit(GPIO_T *pGPIO, uint8_t pin)
Считать состояние вывода сконфигурированого на выход
Definition: gpio.c:170
__RW uint32_t INTSTATUSCLEAR
Definition: gpio.h:52
void GPIO_SetDir(GPIO_T *pGPIO, uint32_t bitVal, bool dir)
Сконфигурировать выводы порта GPIO.
Definition: gpio.c:64
uint32_t val
Definition: mem_test.c:35
uint32_t GPIO_GetAltFunc(GPIO_T *pGPIO)
Считать установленный режим, GPIO или альтернативная функция на порте
Definition: gpio.c:216
void GPIO_WritePort(GPIO_T *pGPIO, uint16_t Pin_number, uint16_t val)
Запись данных в порт GPIO.
Definition: gpio.c:108
__RW uint32_t DATAOUT
Definition: gpio.h:40
__RW uint32_t DATA
Definition: gpio.h:39
__RW uint32_t INTPOLCLR
Definition: gpio.h:51
GPIOPINT_MODE_T GPIO_GetIntConfigPin(GPIO_T *pGPIO, uint8_t pin)
Взять текущий профиль прерывания для вывода
Definition: gpio.c:276
GPIOPINT_MODE
Тип - профиль для установки типа и полярности события прерывания.
Definition: gpio.h:61
void GPIO_IntConfig(GPIO_T *pGPIO, uint32_t Pin_number, GPIOPINT_MODE_T IntMode)
Настроить профиль прерывания.
Definition: gpio.c:235
__RW uint32_t INTENCLR
Definition: gpio.h:47
__RW uint32_t INTPOLSET
Definition: gpio.h:50