board.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef __BOARD_H
  2. #define __BOARD_H
  3. /* MACROs for SET, RESET or TOGGLE Output port */
  4. #define GPIO_HIGH(a,b) a->ODR |= b
  5. #define GPIO_LOW(a,b) a->ODR &= ~b
  6. #define GPIO_TOGGLE(a,b) a->ODR ^= b
  7. /* ADC */
  8. #define ADC_PORT GPIOD
  9. #define ADC_PINU GPIO_PIN_2
  10. #define ADC_CHNLU ADC1_CHANNEL_3
  11. #define ADC_SCHTU ADC1_SCHMITTTRIG_CHANNEL3
  12. #define ADC_PINI GPIO_PIN_3
  13. #define ADC_CHNLI ADC1_CHANNEL_4
  14. #define ADC_SCHTI ADC1_SCHMITTTRIG_CHANNEL4
  15. #define ADC_SMPLS 64
  16. #define ADC_RES 1024U
  17. // Supply voltage in mili volts
  18. #define ADC_VREF 3335U
  19. // Voltage channel
  20. #define VOLTAGE_MULT_TOP 15
  21. #define VOLTAGE_MULT_BOT 100
  22. #define VOLT_MUL_K 100U
  23. #define VOLTAGE_MUL (uint16_t)(VOLT_MUL_K * (VOLTAGE_MULT_BOT * ADC_VREF) / (VOLTAGE_MULT_TOP * ADC_RES))
  24. // Current channel
  25. #define CURREN_SHUNT (1/0.01)
  26. #define CURRENT_MULT_TOP 15
  27. #define CURRENT_MULT_BOT 1
  28. #define CUR_MUL_K 100U
  29. #define CURRENT_MUL (uint16_t)(CUR_MUL_K * (CURRENT_MULT_BOT * ADC_VREF * CURREN_SHUNT) / (CURRENT_MULT_TOP * ADC_RES))
  30. // shunt resistance in mili Ohms
  31. #define ADC_SHUNT 10
  32. #endif /* __BOARD_H */