#ifndef __D9V2FR_DP2006V1000_h__ #define __D9V2FR_DP2006V1000_h__ //采样定时器 #define SamplingTimer pTIM1 #define StartSamplingTimerInterval(uploadCounter) StartTimer1_CC1(uploadCounter) #define ResetSamplingTimerInterval(uploadCounter) ResetTimer1_CC1(uploadCounter) #define StopSamplingTimerInterval() StopTimer1() //ADC转换采集定时器 #define ConversionTimer pTIM2 #define StartConversionTimerInterval(uploadCounter) StartTimer2_UIE(uploadCounter) #define ResetConversionTimerInterval(uploadCounter) ResetTimer2_UIE(uploadCounter) #define StopConversionTimerInterval() StopTimer2() // 从标准单位 到 其他单位 #define ONE_PA_TO_MBAR 0.01f // 1 Pa = 0.01 mbar #define ONE_PA_TO_TORR (1.0f / 133.322f) // 1 Pa = 1 / 133.322 Torr #define ONE_PA_TO_MICRONS (1000.0f / 133.322f) // 1 Pa = 1000 / 133.322 Microns // 从 其他单位 到 标准单位 #define ONE_MBAR_TO_PA 100.0f // 1 mbar = 100 Pa #define ONE_TORR_TO_PA 133.322f // 1 Torr = 133.322 Pa #define ONE_MICRONS_TO_PA (133.322f / 1000.0f) // 1 Microns = 133.322 / 1000 Pa // 压力单位枚举 typedef enum { PRESSURE_UNIT_PA, // 帕斯卡 PRESSURE_UNIT_MICRONS, // 微米汞柱 (μmHg) PRESSURE_UNIT_TORR, // 托 PRESSURE_UNIT_MBAR // 毫巴 } PressureUnitType; // 压力值基准 (现在以 Pa 为单位存储) #if(DP2006V1000) //for GPIO START============================================================================== // for soft I2C #define I2C_SDA GPIO_PIN_4 #define I2C_SDA_PINPOS GPIO_PinPos_4 #define I2C_SDA_GPIO GPIO1 #define I2C_SCL GPIO_PIN_0 #define I2C_SCL_PINPOS GPIO_PinPos_0 #define I2C_SCL_GPIO GPIO2 //for eeprom #define EEPROM_WP_PIN GPIO_PIN_5 #define EEPROM_WP_PINPOS GPIO_PinPos_5 #define EEPROM_WP_GPIO GPIO1 #define PARA_EEPROM BIT1 #define DATA_EEPROM BIT2 #define FROCK_EEPROM BIT1+BIT2+BIT3 //// for FRAM //#define FRAM_WP_PIN GPIO_PIN_6 //#define FRAM_WP_PINPOS GPIO_PinPos_6 //#define FRAM_WP_GPIO GPIO2 //#define FRAM_CS_PIN GPIO_PIN_5 //#define FRAM_CS_PINPOS GPIO_PINPos_5 //#define FRAM_CS_GPIO GPIO2 //// for SPI //#define SCLK_PIN GPIO_PIN_5 //#define SCLK_PINPOS GPIO_PinPos_5 //#define SCLK_PIN_SOURCE GPIO_PinSource5 //#define SCLK_PIN_CONFIG GPIO1_5_AF_SCLK0 //#define SCLK_GPIO GPIO1 //#define SOMI_PIN GPIO_PIN_4 //#define SOMI_PINPOS GPIO_PinPos_4 //#define SOMI_PIN_SOURCE GPIO_PinSource4 //#define SOMI_PIN_CONFIG GPIO1_4_AF_MISO0 //#define SOMI_GPIO GPIO1 //#define SIMO_PIN GPIO_PIN_6 //#define SIMO_PINPOS GPIO_PinPos_6 //#define SIMO_PIN_SOURCE GPIO_PinSource6 //#define SIMO_PIN_CONFIG GPIO1_6_AF_MOSI0 //#define SIMO_GPIO GPIO1 //// for IO //#define TDU_SET_PIN GPIO_PIN_5 //#define TDU_SET_PINPOS GPIO_PinPos_5 //#define TDU_SET_GPIO GPIO1 //#define TDU_SET_PIN_OUT() EnableOutput(TDU_SET_GPIO, TDU_SET_PINPOS) //#define CLR_TDU_SET_PIN() CLR_PIN(TDU_SET_GPIO,TDU_SET_PIN) //#define SET_TDU_SET_PIN() SET_PIN(TDU_SET_GPIO,TDU_SET_PIN) //#define HEATING_PIN GPIO_PIN_6 //#define HEATING_PINPOS GPIO_PinPos_6 //#define HEATING_GPIO GPIO1 //#define HEATING_PIN_OUT() EnableOutput(HEATING_GPIO, HEATING_PINPOS) //#define CLR_HEATING_PIN() CLR_PIN(HEATING_GPIO,HEATING_PIN) //#define SET_HEATING_PIN() SET_PIN(HEATING_GPIO,HEATING_PIN) //#define HP_CON_PIN GPIO_PIN_0 //#define HP_CON_PINPOS GPIO_PinPos_0 //#define HP_CON_GPIO GPIO0 //#define HP_CON_PIN_OUT() EnableOutput(HP_CON_GPIO, HP_CON_PINPOS) //#define CLR_HP_CON_PIN() CLR_PIN(HP_CON_GPIO,HP_CON_PIN) //#define SET_HP_CON_PIN() SET_PIN(HP_CON_GPIO,HP_CON_PIN) //#define TEST_PIN GPIO_PIN_5 //#define TEST_PIN_PINPOS GPIO_PinPos_5 //#define TEST_PIN_GPIO GPIO0 //#define TEST_PIN_OUT() EnableOutput(TEST_PIN_GPIO, TEST_PIN_PINPOS) #define LED_PIN GPIO_PIN_5 #define LED_PIN_PINPOS GPIO_PinPos_5 #define LED_PIN_GPIO GPIO0 #define LED_PIN_OUT() EnableOutput(LED_PIN_GPIO, LED_PIN) #define SET_LED_PIN() SET_PIN(LED_PIN_GPIO,LED_PIN) #define CLR_LED_PIN() CLR_PIN(LED_PIN_GPIO,LED_PIN) //for GPIO END===============================================================================\ //============================================================================================================================================================================================= //for ADC START==============================================================================/ #define SIGNAL0 0x00 #define SIGNAL1 0x01 #define SIGNAL2 0x02 #define SIGNAL3 0x03 #define SIGNAL4 0x04 #define SIGNAL5 0x05 #define SIGNAL6 0x06 //...... typedef struct //__SAMPLE_STATUS_BIT_TypeDef { u16 DisplayZero : 1; // 1 u16 Mode: 2; // 3 u16 CType: 2; // 5 u16 AType: 1; // 7 u16 RType: 1; // 7 u16 HType: 2; // 9 u16 PreSampling: 1; // 10 u16 AutoDetectOffset: 1; // 11 u16 AutoDetectProcess: 2; // 13 u16 EnableRHTest : 1; // 14 u16 EnableRoughTest: 1; // 15 } __SAMPLE_STATUS_BIT_TypeDef; //for ADC END==============================================================================\ //====================================================================================================================================================================================== //for FLOWMETER START======================================================================/ // ***************************************************************************** #define CURVE_1ST 0 #define CURVE_2ND 1 #define CURVE_3RD 2 #define CTYPE_FR CURVE_1ST #define ATYPE_VH CURVE_2ND #define MICRO_FR CURVE_3RD #define FRIDX CTYPE_FR // 0 #define RGIDX ATYPE_VH // 1 #define GAINX MICRO_FR // 2 #define VDUX 3 // *From ADC CTcode #define VDUGX 4 // * CTcode #define RIDX 5 // #define NIDX 6 // NORMAL_VL - LOW_VL (TD INDEX) * VDUX #define TPCB 7 // PCB temperature *From eeprom #define TGAS 8 // GAS temperature *From IIC dev TPCB #define TRH 9 // RH temperature *From eeprom #define BATT 10 // Battery volatge #define IVHDX 11 // IRH CODE test VHH By TD Control *From ADC HTcode #define VRHX 12 // VRH CODE *From ADC ATcode #define IVHUX 13 // IRH CODE test VHH By TU Control #define VRRX 14 // VRR CODE *From ADC RTcode #define RHVOL 15 // RH VOLATAGE * VRHX #define RRVOL 16 // RR VOLATAGE * VRRX #define RHRES 17 // RH resistance * IVHDX #define RRRES 18 // RR resistance * VRRX #define PORH 19 // RH Power * IVHDX #define PDRH 20 // RH current Power #define CVHHX 21 // #define DVHHX 22 // #define VHPA 23 // #define RATO 24 // RR:RH NRH--RRRES--VRRX---ADC RTcode #define SDT 25 // ATYPE OFFSET #define DIVHX 26 // IVHH(TD) - IVHH(TU) *目前未使能 #define TCOE 27 // * TGAS #define TVDUX 28 // * TGAS #define TVDUGX 29 // * TGAS #define FR_H 30 // #define FR_L 31 // #define ANX 32 // #define ANX_MASK (ANX-1) //***************************************************************************** #define CODE1 FR_H // 8300 FIDX #define CODE2 FR_L // 8301 FIDX #define CODE3 FRIDX // 8302 FIDX #define CODE4 NIDX // 8303 #define CODE5 VRHX // 8304 #define CODE6 IVHDX // 8305 #define CODE7 RHVOL // 8306 #define CODE8 VDUGX // 8307 #define CODE9 TPCB // 8308 #define CODE10 RHVOL // 8309 #define CODE11 VDUX // 830A #define CODE12 VDUGX // 830B #define CODE13 NIDX // 830C #define CODE14 BATT // 830D #define CODE15 IVHDX // 830E #define CODE16 VRHX // 830F //for FLOWMETER END==============================================================================\ //=============================================================================================================================================================================================== //for Device Start===============================================================================/ extern __SAMPLE_STATUS_BIT_TypeDef sampleState; extern u16 FRType; extern u32 voltageANX; extern u16 voltageDetected[], adcGain; extern u16 processNextTime, processIndex; //for Device END==============================================================================\ //=============================================================================================================================================================================================== //for func Start==============================================================================/ void FlowRateDealAndOuputSub(void); void ComputeFlowRateIndexAndFlowRate(void);//处理采样数据 u16 WordSubFunction(u16 minuend, u16 subtractor); void StartNormolFlowMeasurement(void);//开始测量流量 static void SetSystemForADCSample(u16 SampleSiagnl);//设置采样通道与采样次数 static void SetNextProcess(void);//设置采样定时器的下一个进程 void FlowProcessManagement(void);//流量过程管理 double ConvertPressure(double value, PressureUnitType targetUnit, PressureUnitType originalUnit); void SwitchPressureUnit(void); static u8 GetDigitCount(u32 num); void Update_Pressure_Display(void); void My_Timer2_Callback(void);//用以开关机按键扫描及单位切换按键扫描 #endif #endif