📄 signalling.h
字号:
#ifndef __SIGNALLING_H
#define __SIGNALLING_H
#include "GlobalVAR.h"
#include <math.h>
#define SONAR_TXRX_NUM_PER_SEC 10 // 10 times of TX and RX every 1 second
#define SONAR_TXRX_PERIOD (1000 / SONAR_TXRX_NUM_PER_SEC) // 200ms
#define SONAR_FREQUENCY_200K 200000
#define SIG_GEN_TIMER_PERIOD_200K ((SYSCLK_FREQ_72MHz / SONAR_FREQUENCY_200K)- 1)
#define SONAR_FREQUENCY_40K 40000
#define SIG_GEN_TIMER_PERIOD_40K ((SYSCLK_FREQ_72MHz / SONAR_FREQUENCY_40K)- 1)
#define SIG_200K_PULSE_DUTY ((uint16_t) (((uint32_t) 5 * (SIG_GEN_TIMER_PERIOD_200K - 1)) / 10))
#define SIG_40K_PULSE_DUTY ((uint16_t) (((uint32_t) 5 * (SIG_GEN_TIMER_PERIOD_40K - 1)) / 10))
#define SIG_PULSE_NUM 9 // 10 pulses of TX each time
#define SIG_DETECT_TIMER_PRESCAL ((SYSCLK_FREQ_72MHz / 1000000) - 1) // SIG TIM's frequency is at 1MHz (1us)
#define SIG_DETECT_TIMER_PERIOD 65530 // 0.000001s * 65530 * 1531 / 2 = 50.163m MAX detect
#define OUTPUT_RELAY_CONTACT_TIME_IN_US 1000 // 1ms
#define RECV_RELAY_CONTACT_TIME_IN_US 1000 // 1ms
#define V_DAMP_TIME_IN_US 300 // 300us + RelayReleaseTime(200us) = 500us
#define OUTPUT_RELAY_CONTACT_TIME_IN_MS 1 // 1ms
#define INPUT_RELAY_CONTACT_TIME_IN_MS 1 // 1ms
#define SIG_RECV_EXTI_PORT_SOURCE GPIO_PortSourceGPIOB
#define SIG_RECV_EXTI_PIN_SOURCE GPIO_PinSource6
#define MAX_NEW_DATA_NUM_AFTER_RISING 3
#define DEPTH_DIFF_FISH_DETECT_THR 1000 // Fish about 76.55cm above bottom
#define VIB_THR_AFTER_RISING 100 // Fish about 7.655cm thick
#define AWSPEED_SEA_WATER_PER_S_IN_M 1400
#define GET_SEA_WATER_DEPTH_IN_CM_US(x) ((uint16_t)((((uint32_t)(x)) * AWSPEED_SEA_WATER_PER_S_IN_M) / 20000))
typedef enum { SIG_STATE_IDLE = 0,
SIG_STATE_CONFIG,
SIG_STATE_PREPARE_TX,
SIG_STATE_START_TX,
SIG_STATE_TXING,
SIG_STATE_V_DAMP,
SIG_STATE_START_RX,
SIG_STATE_RECV_RELAY_CLOSING,
SIG_STATE_RXING,
SIG_STATE_DATA_PROCESS,
SIG_STATE_WAITING_NEXT_TX,
SIG_STATE_COUNT} TYPE_SIG_STATE;
static TYPE_SIG_STATE sta_SIG_StateMachine = SIG_STATE_IDLE;
__IO uint8_t gReceivedHop;
__IO uint16_t gRelayStartCloseCNT;
__IO uint16_t gSIGDetectRawCNT;
__IO uint16_t receivedRawData[HMI_WIDTH_PIX];
__IO uint16_t *pReceivedRawData = receivedRawData;
__IO uint8_t receivedProcessedData[HMI_WIDTH_PIX];
__IO uint8_t *pReceivedProcessedData = receivedProcessedData;
__IO uint16_t gMaxSigRawData;
__IO uint16_t gMinSigRawData;
__IO uint16_t gMaxDepthInCM;
__IO uint16_t gMinDepthInCM;
//#ifdef TESTPIN_ENABLE
// #define SIG_OUT_RELAY_SW_THRE 6
// static uint8_t SIG_Out_Relay_CNT = 0;
//#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -