61 lines
1.6 KiB
C
61 lines
1.6 KiB
C
//
|
|
// Created by dell on 24-9-23.
|
|
//
|
|
|
|
#ifndef ULTRASONIC_DRIVER_H
|
|
#define ULTRASONIC_DRIVER_H
|
|
|
|
#include "gd32e23x.h"
|
|
#include "i2c.h"
|
|
|
|
#define POWER_SUPPLY_12V
|
|
// #define POWER_SUPPLY_24V
|
|
|
|
#ifdef POWER_SUPPLY_12V
|
|
#define POWER_VOLTAGE "12V"
|
|
#define TIME_CORRECTION_US 250
|
|
#define CAPTURE_VALUE_MAX 515
|
|
#elif defined(POWER_SUPPLY_24V)
|
|
#define POWER_VOLTAGE "24V"
|
|
#define TIME_CORRECTION_US 230
|
|
#define CAPTURE_VALUE_MAX 550
|
|
#else
|
|
#error "Please define either POWER_SUPPLY_12V or POWER_SUPPLY_24V"
|
|
#endif
|
|
|
|
#define ULTRASONIC_CYCLES 0x05U
|
|
#define ULTRASONIC_TRAN_US 498 // (ms)
|
|
|
|
#define US_TRAN_GPIO_RCU RCU_GPIOB
|
|
#define US_TRAN_GPIO_PORT GPIOB
|
|
#define US_TRAN_PIN GPIO_PIN_1
|
|
#define US_TRAN_AF GPIO_AF_0
|
|
|
|
#define US_TRAN_RCU RCU_TIMER13
|
|
#define US_TRAN_TIMER TIMER13
|
|
#define US_TRAN_CH TIMER_CH_0
|
|
|
|
#define US_TRAN_DELAY_RCU RCU_TIMER15
|
|
#define US_TRAN_DELAY_TIMER TIMER15
|
|
|
|
#define US_FB_GPIO_RCU RCU_GPIOA
|
|
#define US_FB_EXTI_RCU RCU_CFGCMP
|
|
#define US_FB_GPIO_PORT GPIOA
|
|
#define US_FB_GPIO_PIN GPIO_PIN_0
|
|
#define US_FB_EXTI_IRQ EXTI0_1_IRQn
|
|
#define US_FB_GPIO_EXTI EXTI_0
|
|
|
|
#define US_ECHO_RCU RCU_TIMER16
|
|
#define US_ECHO_TIMER TIMER16
|
|
#define US_ECHO_CH TIMER_CH_0
|
|
|
|
void ultrasonic_gpio_config(void);
|
|
void ultrasonic_pwm_out_cycles(const uint8_t cycles);
|
|
void ultrasonic_transmit_delay(const uint16_t micro_second);
|
|
void ultrasonic_rece_exti_Config(void);
|
|
void ultrasonic_echo_timer_config(void);
|
|
void ultrasonic_receive_config(void);
|
|
uint16_t ultrasonic_calc_distance(uint32_t us_value);
|
|
|
|
#endif //ULTRASONIC_DRIVER_H
|