#ifndef _MC_HALL_H__ #define _MC_HALL_H__ #include "bsp/bsp.h" //51ms, 77.6 //52.2ms //25.2 #ifdef GD32_DEMO #define HALL_GPOI_CLK RCU_GPIOB #define HALL_1_PIN GPIO_PIN_6 #define HALL_1_GROUP GPIOA #define HALL_2_PIN GPIO_PIN_7 #define HALL_2_GROUP GPIOA #define HALL_3_PIN GPIO_PIN_0 #define HALL_3_GROUP GPIOB #else #define HALL_GPOI_CLK RCU_GPIOB #define HALL_1_PIN GPIO_PIN_8 #define HALL_1_GROUP GPIOB #define HALL_2_PIN GPIO_PIN_7 #define HALL_2_GROUP GPIOB #define HALL_3_PIN GPIO_PIN_6 #define HALL_3_GROUP GPIOB #endif #define DEGREES_120 0u #define DEGREES_60 1u #define HALL_PLACE DEGREES_120 static int __inline__ hall_bit_get(uint32_t gpio_periph,uint32_t pin) { if((uint32_t)RESET != (GPIO_ISTAT(gpio_periph)&(pin))){ return 1; }else{ return 0; } } #define READ_HALL1() (hall_bit_get(HALL_1_GROUP, HALL_1_PIN)) #define READ_HALL2() (hall_bit_get(HALL_2_GROUP, HALL_2_PIN)) #define READ_HALL3() (hall_bit_get(HALL_3_GROUP, HALL_3_PIN)) void mc_hall_init(void); int get_hall_stat(int samples); #endif /*_MC_HALL_H__ */