/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.h * @brief : Header for main.c file. * This file contains the common defines of the application. ****************************************************************************** * @attention * * Copyright (c) 2023 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __MAIN_H #define __MAIN_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "stm32f0xx_hal.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Exported types ------------------------------------------------------------*/ /* USER CODE BEGIN ET */ typedef enum { STATE_SETUP_CHARGE, STATE_SETUP_DISCHARGE, STATE_CHARGE, STATE_DISCHARGE, STATE_ERR_CHARGE, STATE_ERR_DISCHARGE } VPState; typedef enum { ERR_NONE, ERR_BAT_GT_CHARGE, ERR_BAT_LT_DISCHARGE, ERR_VBAT_TOO_LOW, ERR_VCDC_TOO_LOW, ERR_OVERVOLTAGE, ERR_UNDERVOLTAGE, } ErrReason; /* USER CODE END ET */ /* Exported constants --------------------------------------------------------*/ /* USER CODE BEGIN EC */ extern int32_t v_bat; extern int32_t v_charge_discharge; extern int32_t v_thresh; extern VPState state; extern ErrReason error; /* USER CODE END EC */ /* Exported macro ------------------------------------------------------------*/ /* USER CODE BEGIN EM */ #define V_MIN_VOLT 1.0 #define V_MIN (V_MIN_VOLT * 100) // 0.01V resolution #define V_MAX 11000 // 0.01V resolution #define DEBOUNCE_TIME 100 /* USER CODE END EM */ /* Exported functions prototypes ---------------------------------------------*/ void Error_Handler(void); /* USER CODE BEGIN EFP */ /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ #define RELAY_SET_Pin GPIO_PIN_2 #define RELAY_SET_GPIO_Port GPIOA #define C_D_SEL_Pin GPIO_PIN_0 #define C_D_SEL_GPIO_Port GPIOB #define ENC_S_Pin GPIO_PIN_3 #define ENC_S_GPIO_Port GPIOB #define ERR_LED_Pin GPIO_PIN_7 #define ERR_LED_GPIO_Port GPIOB /* USER CODE BEGIN Private defines */ /* USER CODE END Private defines */ #ifdef __cplusplus } #endif #endif /* __MAIN_H */