Untitled
unknown
plain_text
2 years ago
3.0 kB
9
Indexable
/**
* @file gpio.h
* @brief GPIO Driver
*
* This file contains the functions for configuring and manipulating GPIO pins.
*/
#ifndef GPIO_H
#define GPIO_H
#include "types.h"
/**
* @struct GPIO_Reg_t
* @brief GPIO Register Structure
*
* This structure defines the GPIO register layout.
*/
typedef struct {
/* Register fields */
} GPIO_Reg_t;
/**
* @struct GPIO_Cfg_t
* @brief GPIO Configuration Structure
*
* This structure defines the configuration options for a GPIO pin.
*/
typedef struct {
/* Configuration fields */
} GPIO_Cfg_t;
/**
* @enum Pin_State_t
* @brief Pin State Enumeration
*
* This enumeration defines the possible states of a GPIO pin.
*/
typedef enum {
Pin_Low = 0, /**< Low state */
Pin_High /**< High state */
} Pin_State_t;
/**
* @brief Initialize GPIO port
*
* This function initializes a GPIO port with the given configuration.
*
* @param GPIOx Pointer to the GPIO port register
* @param Copy_GPIO_Cfg Pointer to the GPIO configuration structure
*/
void MCL_GPIO_vInitPort(GPIO_Reg_t* GPIOx, GPIO_Cfg_t* Copy_GPIO_Cfg);
/**
* @brief Set the configuration for a GPIO pin
*
* This function sets the configuration options for a GPIO pin.
*
* @param GPIOx Pointer to the GPIO port register
* @param Copy_PinId The ID of the GPIO pin
* @param Copy_GPIO_Cfg Pointer to the GPIO configuration structure
*/
void MCL_GPIO_vSetPinCfg(GPIO_Reg_t* GPIOx, GPIO_Pin_t Copy_PinId, GPIO_Cfg_t* Copy_GPIO_Cfg);
/**
* @brief Set the state of a GPIO pin
*
* This function sets the state of a GPIO pin.
*
* @param GPIOx Pointer to the GPIO port register
* @param Copy_PinId The ID of the GPIO pin
* @param Copy_xPinVal The state to set for the GPIO pin
*/
void MCL_GPIO_vDirectPinSetter(GPIO_Reg_t* GPIOx, GPIO_Pin_t Copy_PinId, Pin_State_t Copy_xPinVal);
/**
* @brief Get the state of a GPIO pin
*
* This function retrieves the state of a GPIO pin.
*
* @param GPIOx Pointer to the GPIO port register
* @param Copy_PinId The ID of the GPIO pin
* @return The state of the GPIO pin (Pin_Low or Pin_High)
*/
u8 MCL_GPIO_u8GetPinVal(GPIO_Reg_t* GPIOx, GPIO_Pin_t Copy_PinId);
/**
* @brief Write a value to the GPIO port
*
* This function writes a value to the GPIO port.
*
* @param GPIOx Pointer to the GPIO port register
* @param Copy_u32PortVal The value to write to the GPIO port
*/
void MCL_GPIO_vWritePort(GPIO_Reg_t* GPIOx, u32 Copy_u32PortVal);
/**
* @brief Read the value of the GPIO port
*
* This function reads the value of the GPIO port.
*
* @param GPIOx Pointer to the GPIO port register
* @return The value of the GPIO port
*/
u32 MCL_GPIO_u32ReadPort(GPIO_Reg_t* GPIOx);
/**
* @brief Toggle the state of a GPIO pin
*
* This function toggles the state of a GPIO pin.
*
* @param GPIOx Pointer to the GPIO port register
* @param Copy_PinId The ID of the GPIO pin to toggle
*/
void MCL_GPIO_vTogglePin(GPIO_Reg_t*Editor is loading...