#ifndef __BOARD_H #define __BOARD_H /* MACROs for SET, RESET or TOGGLE Output port */ #define GPIO_HIGH(a,b) a->ODR |= b #define GPIO_LOW(a,b) a->ODR &= ~b #define GPIO_TOGGLE(a,b) a->ODR ^= b /* ADC */ #define ADC_PORT GPIOD #define ADC_PINU GPIO_PIN_2 #define ADC_CHNLU ADC1_CHANNEL_3 #define ADC_SCHTU ADC1_SCHMITTTRIG_CHANNEL3 #define ADC_PINI GPIO_PIN_3 #define ADC_CHNLI ADC1_CHANNEL_4 #define ADC_SCHTI ADC1_SCHMITTTRIG_CHANNEL4 #define ADC_SMPLS 64 #define ADC_RES 1024U // Supply voltage in mili volts #define ADC_VREF 3335U // Voltage channel #define VOLTAGE_MULT_TOP 15 #define VOLTAGE_MULT_BOT 100 #define VOLT_MUL_K 100U #define VOLTAGE_MUL (uint16_t)(VOLT_MUL_K * (VOLTAGE_MULT_BOT * ADC_VREF) / (VOLTAGE_MULT_TOP * ADC_RES)) // Current channel #define CURREN_SHUNT (1/0.01) #define CURRENT_MULT_TOP 15 #define CURRENT_MULT_BOT 1 #define CUR_MUL_K 100U #define CURRENT_MUL (uint16_t)(CUR_MUL_K * (CURRENT_MULT_BOT * ADC_VREF * CURREN_SHUNT) / (CURRENT_MULT_TOP * ADC_RES)) // shunt resistance in mili Ohms #define ADC_SHUNT 10 #endif /* __BOARD_H */