adc.h.bak 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file adc.h
  5. * @brief This file contains all the function prototypes for
  6. * the adc.c file
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * Copyright (c) 2022 STMicroelectronics.
  11. * All rights reserved.
  12. *
  13. * This software is licensed under terms that can be found in the LICENSE file
  14. * in the root directory of this software component.
  15. * If no LICENSE file comes with this software, it is provided AS-IS.
  16. *
  17. ******************************************************************************
  18. */
  19. /* USER CODE END Header */
  20. /* Define to prevent recursive inclusion -------------------------------------*/
  21. #ifndef __ADC_H__
  22. #define __ADC_H__
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. /* Includes ------------------------------------------------------------------*/
  27. #include "main.h"
  28. /* USER CODE BEGIN Includes */
  29. /* USER CODE END Includes */
  30. extern ADC_HandleTypeDef hadc1;
  31. extern ADC_HandleTypeDef hadc2;
  32. extern ADC_HandleTypeDef hadc3;
  33. /* USER CODE BEGIN Private defines */
  34. #define ADC1_CHANEL_COUNT 9
  35. #define ADC1_SAMPLE_COUNT 100
  36. #define ADC2_CHANEL_COUNT 3
  37. #define ADC2_SAMPLE_COUNT 255
  38. #define ADC3_CHANEL_COUNT 3
  39. #define ADC3_SAMPLE_COUNT 100
  40. #define LIMIT_MOVE_FILTER 9
  41. //#define CURRENT_LIMIT_MOVE_FILTER 4
  42. //#define VOLTAGE_LIMIT_MOVE_FILTER 8
  43. typedef struct{
  44. uint16_t idx_put;
  45. uint32_t buffer[LIMIT_MOVE_FILTER];
  46. uint32_t value;
  47. }ADC_MOVE_AVG_FILTER;
  48. /* USER CODE END Private defines */
  49. void MX_ADC1_Init(void);
  50. void MX_ADC2_Init(void);
  51. void MX_ADC3_Init(void);
  52. /* USER CODE BEGIN Prototypes */
  53. extern uint8_t adc_filter_move_avg(ADC_MOVE_AVG_FILTER *data, uint32_t value);
  54. extern uint32_t ADC1_Buf[ADC1_CHANEL_COUNT*ADC1_SAMPLE_COUNT], ADC1_Value[ADC1_CHANEL_COUNT];
  55. extern uint32_t ADC2_Buf[ADC2_CHANEL_COUNT*ADC2_SAMPLE_COUNT], ADC2_Value[ADC2_CHANEL_COUNT];
  56. extern uint32_t ADC3_Buf[ADC3_CHANEL_COUNT*ADC3_SAMPLE_COUNT] , ADC3_Value[ADC3_CHANEL_COUNT];
  57. extern uint32_t L1_ADC_Each_Value[ADC2_SAMPLE_COUNT];
  58. extern uint32_t L2_ADC_Each_Value[ADC2_SAMPLE_COUNT];
  59. extern uint32_t L3_ADC_Each_Value[ADC2_SAMPLE_COUNT];
  60. extern uint8_t bADC2_Done;
  61. struct ADC_VALUE{
  62. ADC_MOVE_AVG_FILTER ADC1_IN0;
  63. ADC_MOVE_AVG_FILTER ADC1_IN1;
  64. ADC_MOVE_AVG_FILTER ADC1_IN2;
  65. ADC_MOVE_AVG_FILTER ADC1_IN3;
  66. ADC_MOVE_AVG_FILTER ADC1_IN4;
  67. ADC_MOVE_AVG_FILTER ADC1_IN5;
  68. ADC_MOVE_AVG_FILTER ADC1_IN6;
  69. ADC_MOVE_AVG_FILTER ADC1_IN7;
  70. ADC_MOVE_AVG_FILTER ADC1_IN8;
  71. ADC_MOVE_AVG_FILTER ADC2_IN0;
  72. ADC_MOVE_AVG_FILTER ADC2_IN1;
  73. ADC_MOVE_AVG_FILTER ADC2_IN2;
  74. ADC_MOVE_AVG_FILTER ADC3_IN8;
  75. };
  76. extern struct ADC_VALUE adc_value;
  77. /* USER CODE END Prototypes */
  78. #ifdef __cplusplus
  79. }
  80. #endif
  81. #endif /* __ADC_H__ */