⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 signalling.h

📁 STM32,5110液晶显示超声波测距探鱼器200KHz,带电路图,精确到厘米
💻 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 + -