136 lines
3.6 KiB
C
136 lines
3.6 KiB
C
|
#pragma once
|
||
|
#include "stm32f1xx_hal.h"
|
||
|
|
||
|
#define LEFT_HALL_U_PIN GPIO_PIN_5
|
||
|
#define LEFT_HALL_V_PIN GPIO_PIN_6
|
||
|
#define LEFT_HALL_W_PIN GPIO_PIN_7
|
||
|
|
||
|
#define LEFT_HALL_U_PORT GPIOB
|
||
|
#define LEFT_HALL_V_PORT GPIOB
|
||
|
#define LEFT_HALL_W_PORT GPIOB
|
||
|
|
||
|
#define RIGHT_HALL_U_PIN GPIO_PIN_10
|
||
|
#define RIGHT_HALL_V_PIN GPIO_PIN_11
|
||
|
#define RIGHT_HALL_W_PIN GPIO_PIN_12
|
||
|
|
||
|
#define RIGHT_HALL_U_PORT GPIOC
|
||
|
#define RIGHT_HALL_V_PORT GPIOC
|
||
|
#define RIGHT_HALL_W_PORT GPIOC
|
||
|
|
||
|
#define LEFT_TIM TIM8
|
||
|
#define LEFT_TIM_U CCR1
|
||
|
#define LEFT_TIM_UH_PIN GPIO_PIN_6
|
||
|
#define LEFT_TIM_UH_PORT GPIOC
|
||
|
#define LEFT_TIM_UL_PIN GPIO_PIN_7
|
||
|
#define LEFT_TIM_UL_PORT GPIOA
|
||
|
#define LEFT_TIM_V CCR2
|
||
|
#define LEFT_TIM_VH_PIN GPIO_PIN_7
|
||
|
#define LEFT_TIM_VH_PORT GPIOC
|
||
|
#define LEFT_TIM_VL_PIN GPIO_PIN_0
|
||
|
#define LEFT_TIM_VL_PORT GPIOB
|
||
|
#define LEFT_TIM_W CCR3
|
||
|
#define LEFT_TIM_WH_PIN GPIO_PIN_8
|
||
|
#define LEFT_TIM_WH_PORT GPIOC
|
||
|
#define LEFT_TIM_WL_PIN GPIO_PIN_1
|
||
|
#define LEFT_TIM_WL_PORT GPIOB
|
||
|
|
||
|
#define RIGHT_TIM TIM1
|
||
|
#define RIGHT_TIM_U CCR1
|
||
|
#define RIGHT_TIM_UH_PIN GPIO_PIN_8
|
||
|
#define RIGHT_TIM_UH_PORT GPIOA
|
||
|
#define RIGHT_TIM_UL_PIN GPIO_PIN_13
|
||
|
#define RIGHT_TIM_UL_PORT GPIOB
|
||
|
#define RIGHT_TIM_V CCR2
|
||
|
#define RIGHT_TIM_VH_PIN GPIO_PIN_9
|
||
|
#define RIGHT_TIM_VH_PORT GPIOA
|
||
|
#define RIGHT_TIM_VL_PIN GPIO_PIN_14
|
||
|
#define RIGHT_TIM_VL_PORT GPIOB
|
||
|
#define RIGHT_TIM_W CCR3
|
||
|
#define RIGHT_TIM_WH_PIN GPIO_PIN_10
|
||
|
#define RIGHT_TIM_WH_PORT GPIOA
|
||
|
#define RIGHT_TIM_WL_PIN GPIO_PIN_15
|
||
|
#define RIGHT_TIM_WL_PORT GPIOB
|
||
|
|
||
|
#define LEFT_DC_CUR_ADC ADC1
|
||
|
#define LEFT_U_CUR_ADC ADC1
|
||
|
#define LEFT_V_CUR_ADC ADC1
|
||
|
|
||
|
#define LEFT_DC_CUR_PIN GPIO_PIN_0
|
||
|
#define LEFT_U_CUR_PIN GPIO_PIN_0
|
||
|
#define LEFT_V_CUR_PIN GPIO_PIN_3
|
||
|
|
||
|
#define LEFT_DC_CUR_PORT GPIOC
|
||
|
#define LEFT_U_CUR_PORT GPIOA
|
||
|
#define LEFT_V_CUR_PORT GPIOC
|
||
|
|
||
|
#define RIGHT_DC_CUR_ADC ADC2
|
||
|
#define RIGHT_U_CUR_ADC ADC2
|
||
|
#define RIGHT_V_CUR_ADC ADC2
|
||
|
|
||
|
#define RIGHT_DC_CUR_PIN GPIO_PIN_1
|
||
|
#define RIGHT_U_CUR_PIN GPIO_PIN_4
|
||
|
#define RIGHT_V_CUR_PIN GPIO_PIN_5
|
||
|
|
||
|
#define RIGHT_DC_CUR_PORT GPIOC
|
||
|
#define RIGHT_U_CUR_PORT GPIOC
|
||
|
#define RIGHT_V_CUR_PORT GPIOC
|
||
|
|
||
|
#define DCLINK_ADC ADC3
|
||
|
#define DCLINK_CHANNEL
|
||
|
#define DCLINK_PIN GPIO_PIN_2
|
||
|
#define DCLINK_PORT GPIOC
|
||
|
#define DCLINK_PULLUP 30000
|
||
|
#define DCLINK_PULLDOWN 1000
|
||
|
|
||
|
#define LED_PIN GPIO_PIN_2
|
||
|
#define LED_PORT GPIOB
|
||
|
|
||
|
#define BUZZER_PIN GPIO_PIN_4
|
||
|
#define BUZZER_PORT GPIOA
|
||
|
|
||
|
#define SWITCH_PIN GPIO_PIN_1
|
||
|
#define SWITCH_PORT GPIOA
|
||
|
|
||
|
#define OFF_PIN GPIO_PIN_5
|
||
|
#define OFF_PORT GPIOA
|
||
|
|
||
|
#define CHARGER_PIN GPIO_PIN_12
|
||
|
#define CHARGER_PORT GPIOA
|
||
|
|
||
|
#define PWM_FREQ 16000
|
||
|
#define DEAD_TIME 50
|
||
|
|
||
|
#define R 0.27
|
||
|
#define P 15
|
||
|
#define PSI 0.02
|
||
|
#define V 23
|
||
|
|
||
|
#define MILLI_R (R * 1000)
|
||
|
#define MILLI_PSI (PSI * 1000)
|
||
|
#define MILLI_V (V * 1000)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#define NO 0
|
||
|
#define YES 1
|
||
|
#define ABS(a) (((a) < 0.0) ? -(a) : (a))
|
||
|
#define LIMIT(x, lowhigh) (((x) > (lowhigh)) ? (lowhigh) : (((x) < (-lowhigh)) ? (-lowhigh) : (x)))
|
||
|
#define SAT(x, lowhigh) (((x) > (lowhigh)) ? (1.0) : (((x) < (-lowhigh)) ? (-1.0) : (0.0)))
|
||
|
#define SAT2(x, low, high) (((x) > (high)) ? (1.0) : (((x) < (low)) ? (-1.0) : (0.0)))
|
||
|
#define STEP(from, to, step) (((from) < (to)) ? (MIN((from) + (step), (to))) : (MAX((from) - (step), (to))))
|
||
|
#define DEG(a) ((a)*M_PI / 180.0)
|
||
|
#define RAD(a) ((a)*180.0 / M_PI)
|
||
|
#define SIGN(a) (((a) < 0.0) ? (-1.0) : (((a) > 0.0) ? (1.0) : (0.0)))
|
||
|
#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
|
||
|
#define SCALE(value, high, max) MIN(MAX(((max) - (value)) / ((max) - (high)), 0.0), 1.0)
|
||
|
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
|
||
|
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
||
|
#define MIN3(a, b, c) MIN(a, MIN(b, c))
|
||
|
#define MAX3(a, b, c) MAX(a, MAX(b, c))
|
||
|
|
||
|
typedef struct {
|
||
|
uint16_t data1;
|
||
|
uint16_t data2;
|
||
|
} adc_buf_t;
|