#line 1 "..\\src\\main.c" #line 1 "..\\src\\STM32Lib\\\\stm32f10x.h" typedef enum IRQn { NonMaskableInt_IRQn = -14, MemoryManagement_IRQn = -12, BusFault_IRQn = -11, UsageFault_IRQn = -10, SVCall_IRQn = -5, DebugMonitor_IRQn = -4, PendSV_IRQn = -2, SysTick_IRQn = -1, WWDG_IRQn = 0, PVD_IRQn = 1, TAMPER_IRQn = 2, RTC_IRQn = 3, FLASH_IRQn = 4, RCC_IRQn = 5, EXTI0_IRQn = 6, EXTI1_IRQn = 7, EXTI2_IRQn = 8, EXTI3_IRQn = 9, EXTI4_IRQn = 10, DMA1_Channel1_IRQn = 11, DMA1_Channel2_IRQn = 12, DMA1_Channel3_IRQn = 13, DMA1_Channel4_IRQn = 14, DMA1_Channel5_IRQn = 15, DMA1_Channel6_IRQn = 16, DMA1_Channel7_IRQn = 17, ADC1_2_IRQn = 18, USB_HP_CAN1_TX_IRQn = 19, USB_LP_CAN1_RX0_IRQn = 20, CAN1_RX1_IRQn = 21, CAN1_SCE_IRQn = 22, EXTI9_5_IRQn = 23, TIM1_BRK_IRQn = 24, TIM1_UP_IRQn = 25, TIM1_TRG_COM_IRQn = 26, TIM1_CC_IRQn = 27, TIM2_IRQn = 28, TIM3_IRQn = 29, TIM4_IRQn = 30, I2C1_EV_IRQn = 31, I2C1_ER_IRQn = 32, I2C2_EV_IRQn = 33, I2C2_ER_IRQn = 34, SPI1_IRQn = 35, SPI2_IRQn = 36, USART1_IRQn = 37, USART2_IRQn = 38, USART3_IRQn = 39, EXTI15_10_IRQn = 40, RTCAlarm_IRQn = 41, USBWakeUp_IRQn = 42, TIM8_BRK_IRQn = 43, TIM8_UP_IRQn = 44, TIM8_TRG_COM_IRQn = 45, TIM8_CC_IRQn = 46, ADC3_IRQn = 47, FSMC_IRQn = 48, SDIO_IRQn = 49, TIM5_IRQn = 50, SPI3_IRQn = 51, UART4_IRQn = 52, UART5_IRQn = 53, TIM6_IRQn = 54, TIM7_IRQn = 55, DMA2_Channel1_IRQn = 56, DMA2_Channel2_IRQn = 57, DMA2_Channel3_IRQn = 58, DMA2_Channel4_5_IRQn = 59 } IRQn_Type; #line 1 "..\\src\\STM32Lib\\\\core_cm3.h" #line 1 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdint.h" #line 27 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdint.h" #line 46 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdint.h" typedef signed char int8_t; typedef signed short int int16_t; typedef signed int int32_t; typedef signed __int64 int64_t; typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; typedef unsigned __int64 uint64_t; typedef signed char int_least8_t; typedef signed short int int_least16_t; typedef signed int int_least32_t; typedef signed __int64 int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short int uint_least16_t; typedef unsigned int uint_least32_t; typedef unsigned __int64 uint_least64_t; typedef signed int int_fast8_t; typedef signed int int_fast16_t; typedef signed int int_fast32_t; typedef signed __int64 int_fast64_t; typedef unsigned int uint_fast8_t; typedef unsigned int uint_fast16_t; typedef unsigned int uint_fast32_t; typedef unsigned __int64 uint_fast64_t; typedef signed int intptr_t; typedef unsigned int uintptr_t; typedef signed long long intmax_t; typedef unsigned long long uintmax_t; #line 216 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdint.h" #line 241 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdint.h" #line 305 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdint.h" #line 86 "..\\src\\STM32Lib\\\\core_cm3.h" typedef struct { volatile uint32_t ISER[8]; uint32_t RESERVED0[24]; volatile uint32_t ICER[8]; uint32_t RSERVED1[24]; volatile uint32_t ISPR[8]; uint32_t RESERVED2[24]; volatile uint32_t ICPR[8]; uint32_t RESERVED3[24]; volatile uint32_t IABR[8]; uint32_t RESERVED4[56]; volatile uint8_t IP[240]; uint32_t RESERVED5[644]; volatile uint32_t STIR; } NVIC_Type; typedef struct { volatile const uint32_t CPUID; volatile uint32_t ICSR; volatile uint32_t VTOR; volatile uint32_t AIRCR; volatile uint32_t SCR; volatile uint32_t CCR; volatile uint8_t SHP[12]; volatile uint32_t SHCSR; volatile uint32_t CFSR; volatile uint32_t HFSR; volatile uint32_t DFSR; volatile uint32_t MMFAR; volatile uint32_t BFAR; volatile uint32_t AFSR; volatile const uint32_t PFR[2]; volatile const uint32_t DFR; volatile const uint32_t ADR; volatile const uint32_t MMFR[4]; volatile const uint32_t ISAR[5]; } SCB_Type; typedef struct { volatile uint32_t CTRL; volatile uint32_t LOAD; volatile uint32_t VAL; volatile const uint32_t CALIB; } SysTick_Type; typedef struct { volatile union { volatile uint8_t u8; volatile uint16_t u16; volatile uint32_t u32; } PORT [32]; uint32_t RESERVED0[864]; volatile uint32_t TER; uint32_t RESERVED1[15]; volatile uint32_t TPR; uint32_t RESERVED2[15]; volatile uint32_t TCR; uint32_t RESERVED3[29]; volatile uint32_t IWR; volatile uint32_t IRR; volatile uint32_t IMCR; uint32_t RESERVED4[43]; volatile uint32_t LAR; volatile uint32_t LSR; uint32_t RESERVED5[6]; volatile const uint32_t PID4; volatile const uint32_t PID5; volatile const uint32_t PID6; volatile const uint32_t PID7; volatile const uint32_t PID0; volatile const uint32_t PID1; volatile const uint32_t PID2; volatile const uint32_t PID3; volatile const uint32_t CID0; volatile const uint32_t CID1; volatile const uint32_t CID2; volatile const uint32_t CID3; } ITM_Type; typedef struct { uint32_t RESERVED0; volatile const uint32_t ICTR; uint32_t RESERVED1; } InterruptType_Type; #line 251 "..\\src\\STM32Lib\\\\core_cm3.h" typedef struct { volatile uint32_t DHCSR; volatile uint32_t DCRSR; volatile uint32_t DCRDR; volatile uint32_t DEMCR; } CoreDebug_Type; #line 270 "..\\src\\STM32Lib\\\\core_cm3.h" #line 277 "..\\src\\STM32Lib\\\\core_cm3.h" #line 304 "..\\src\\STM32Lib\\\\core_cm3.h" #line 329 "..\\src\\STM32Lib\\\\core_cm3.h" extern uint32_t __get_PSP(void); extern void __set_PSP(uint32_t topOfProcStack); extern uint32_t __get_MSP(void); extern void __set_MSP(uint32_t topOfMainStack); extern uint32_t __REV16(uint16_t value); extern int32_t __REVSH(int16_t value); #line 495 "..\\src\\STM32Lib\\\\core_cm3.h" static __inline uint32_t __get_BASEPRI(void) { register uint32_t __regBasePri __asm("basepri"); return(__regBasePri); } static __inline void __set_BASEPRI(uint32_t basePri) { register uint32_t __regBasePri __asm("basepri"); __regBasePri = (basePri & 0x1ff); } static __inline uint32_t __get_PRIMASK(void) { register uint32_t __regPriMask __asm("primask"); return(__regPriMask); } static __inline void __set_PRIMASK(uint32_t priMask) { register uint32_t __regPriMask __asm("primask"); __regPriMask = (priMask); } static __inline uint32_t __get_FAULTMASK(void) { register uint32_t __regFaultMask __asm("faultmask"); return(__regFaultMask); } static __inline void __set_FAULTMASK(uint32_t faultMask) { register uint32_t __regFaultMask __asm("faultmask"); __regFaultMask = (faultMask & 1); } static __inline uint32_t __get_CONTROL(void) { register uint32_t __regControl __asm("control"); return(__regControl); } static __inline void __set_CONTROL(uint32_t control) { register uint32_t __regControl __asm("control"); __regControl = control; } #line 1078 "..\\src\\STM32Lib\\\\core_cm3.h" static __inline void NVIC_SetPriorityGrouping(uint32_t priority_grouping) { uint32_t reg_value = 0; reg_value = ((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR; reg_value &= ~((0xFFFFU << 16) | (0x0F << 8)); reg_value = ((reg_value | (0x5FA << 16) | (priority_grouping << 8))); ((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR = reg_value; } static __inline void NVIC_EnableIRQ(IRQn_Type IRQn) { ((NVIC_Type *) ((0xE000E000) + 0x0100))->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); } static __inline void NVIC_DisableIRQ(IRQn_Type IRQn) { ((NVIC_Type *) ((0xE000E000) + 0x0100))->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); } static __inline IRQn_Type NVIC_GetPendingIRQ(IRQn_Type IRQn) { return((IRQn_Type) (((NVIC_Type *) ((0xE000E000) + 0x0100))->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))); } static __inline void NVIC_SetPendingIRQ(IRQn_Type IRQn) { ((NVIC_Type *) ((0xE000E000) + 0x0100))->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); } static __inline void NVIC_ClearPendingIRQ(IRQn_Type IRQn) { ((NVIC_Type *) ((0xE000E000) + 0x0100))->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); } static __inline IRQn_Type NVIC_GetActive(IRQn_Type IRQn) { return((IRQn_Type)(((NVIC_Type *) ((0xE000E000) + 0x0100))->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))); } static __inline void NVIC_SetPriority(IRQn_Type IRQn, int32_t priority) { if(IRQn < 0) { ((SCB_Type *) ((0xE000E000) + 0x0D00))->SHP[((uint32_t)(IRQn) & 0xF) - 4] = ((priority << (8 - 4)) & 0xff); } else { ((NVIC_Type *) ((0xE000E000) + 0x0100))->IP[(uint32_t)(IRQn)] = ((priority << (8 - 4)) & 0xff); } } static __inline uint32_t NVIC_GetPriority(IRQn_Type IRQn) { if(IRQn < 0) { return((uint32_t)(((SCB_Type *) ((0xE000E000) + 0x0D00))->SHP[((uint32_t)(IRQn) & 0xF) - 4] >> (8 - 4))); } else { return((uint32_t)(((NVIC_Type *) ((0xE000E000) + 0x0100))->IP[(uint32_t)(IRQn)] >> (8 - 4))); } } static __inline uint32_t SysTick_Config(uint32_t ticks) { if (ticks > ((1<<24) -1)) return (1); ((SysTick_Type *) ((0xE000E000) + 0x0010))->LOAD = (ticks & ((1<<24) -1)) - 1; NVIC_SetPriority (SysTick_IRQn, 0); ((SysTick_Type *) ((0xE000E000) + 0x0010))->VAL = (0x00); ((SysTick_Type *) ((0xE000E000) + 0x0010))->CTRL = (1 << 2) | (1 << 0) | (1 << 1); return (0); } static __inline void NVIC_SystemReset(void) { ((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR = ((0x5FA << 16) | (((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR & (0x700)) | (1 << 2)); } static __inline uint32_t ITM_SendChar (uint32_t ch) { if(ch == '\n') ITM_SendChar('\r'); if ((((CoreDebug_Type *) (0xE000EDF0))->DEMCR & (1 << 24)) && (((ITM_Type *) (0xE0000000))->TCR & 1) && (((ITM_Type *) (0xE0000000))->TER & (1UL << 0)) ) { while (((ITM_Type *) (0xE0000000))->PORT[0].u32 == 0); ((ITM_Type *) (0xE0000000))->PORT[0].u8 = (uint8_t) ch; } return (ch); } #line 197 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1 "..\\src\\STM32Lib\\\\system_stm32f10x.h" extern const uint32_t SystemFrequency; extern const uint32_t SystemFrequency_SysClk; extern const uint32_t SystemFrequency_AHBClk; extern const uint32_t SystemFrequency_APB1Clk; extern const uint32_t SystemFrequency_APB2Clk; extern void SystemInit(void); #line 198 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 199 "..\\src\\STM32Lib\\\\stm32f10x.h" typedef int32_t s32; typedef int16_t s16; typedef int8_t s8; typedef const int32_t sc32; typedef const int16_t sc16; typedef const int8_t sc8; typedef volatile int32_t vs32; typedef volatile int16_t vs16; typedef volatile int8_t vs8; typedef volatile const int32_t vsc32; typedef volatile const int16_t vsc16; typedef volatile const int8_t vsc8; typedef uint32_t u32; typedef uint16_t u16; typedef uint8_t u8; typedef const uint32_t uc32; typedef const uint16_t uc16; typedef const uint8_t uc8; typedef volatile uint32_t vu32; typedef volatile uint16_t vu16; typedef volatile uint8_t vu8; typedef volatile const uint32_t vuc32; typedef volatile const uint16_t vuc16; typedef volatile const uint8_t vuc8; typedef enum {FALSE = 0, TRUE = !FALSE} bool; typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus; typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; typedef struct { volatile uint32_t SR; volatile uint32_t CR1; volatile uint32_t CR2; volatile uint32_t SMPR1; volatile uint32_t SMPR2; volatile uint32_t JOFR1; volatile uint32_t JOFR2; volatile uint32_t JOFR3; volatile uint32_t JOFR4; volatile uint32_t HTR; volatile uint32_t LTR; volatile uint32_t SQR1; volatile uint32_t SQR2; volatile uint32_t SQR3; volatile uint32_t JSQR; volatile uint32_t JDR1; volatile uint32_t JDR2; volatile uint32_t JDR3; volatile uint32_t JDR4; volatile uint32_t DR; } ADC_TypeDef; typedef struct { uint32_t RESERVED0; volatile uint16_t DR1; uint16_t RESERVED1; volatile uint16_t DR2; uint16_t RESERVED2; volatile uint16_t DR3; uint16_t RESERVED3; volatile uint16_t DR4; uint16_t RESERVED4; volatile uint16_t DR5; uint16_t RESERVED5; volatile uint16_t DR6; uint16_t RESERVED6; volatile uint16_t DR7; uint16_t RESERVED7; volatile uint16_t DR8; uint16_t RESERVED8; volatile uint16_t DR9; uint16_t RESERVED9; volatile uint16_t DR10; uint16_t RESERVED10; volatile uint16_t RTCCR; uint16_t RESERVED11; volatile uint16_t CR; uint16_t RESERVED12; volatile uint16_t CSR; uint16_t RESERVED13[5]; volatile uint16_t DR11; uint16_t RESERVED14; volatile uint16_t DR12; uint16_t RESERVED15; volatile uint16_t DR13; uint16_t RESERVED16; volatile uint16_t DR14; uint16_t RESERVED17; volatile uint16_t DR15; uint16_t RESERVED18; volatile uint16_t DR16; uint16_t RESERVED19; volatile uint16_t DR17; uint16_t RESERVED20; volatile uint16_t DR18; uint16_t RESERVED21; volatile uint16_t DR19; uint16_t RESERVED22; volatile uint16_t DR20; uint16_t RESERVED23; volatile uint16_t DR21; uint16_t RESERVED24; volatile uint16_t DR22; uint16_t RESERVED25; volatile uint16_t DR23; uint16_t RESERVED26; volatile uint16_t DR24; uint16_t RESERVED27; volatile uint16_t DR25; uint16_t RESERVED28; volatile uint16_t DR26; uint16_t RESERVED29; volatile uint16_t DR27; uint16_t RESERVED30; volatile uint16_t DR28; uint16_t RESERVED31; volatile uint16_t DR29; uint16_t RESERVED32; volatile uint16_t DR30; uint16_t RESERVED33; volatile uint16_t DR31; uint16_t RESERVED34; volatile uint16_t DR32; uint16_t RESERVED35; volatile uint16_t DR33; uint16_t RESERVED36; volatile uint16_t DR34; uint16_t RESERVED37; volatile uint16_t DR35; uint16_t RESERVED38; volatile uint16_t DR36; uint16_t RESERVED39; volatile uint16_t DR37; uint16_t RESERVED40; volatile uint16_t DR38; uint16_t RESERVED41; volatile uint16_t DR39; uint16_t RESERVED42; volatile uint16_t DR40; uint16_t RESERVED43; volatile uint16_t DR41; uint16_t RESERVED44; volatile uint16_t DR42; uint16_t RESERVED45; } BKP_TypeDef; typedef struct { volatile uint32_t TIR; volatile uint32_t TDTR; volatile uint32_t TDLR; volatile uint32_t TDHR; } CAN_TxMailBox_TypeDef; typedef struct { volatile uint32_t RIR; volatile uint32_t RDTR; volatile uint32_t RDLR; volatile uint32_t RDHR; } CAN_FIFOMailBox_TypeDef; typedef struct { volatile uint32_t FR1; volatile uint32_t FR2; } CAN_FilterRegister_TypeDef; typedef struct { volatile uint32_t MCR; volatile uint32_t MSR; volatile uint32_t TSR; volatile uint32_t RF0R; volatile uint32_t RF1R; volatile uint32_t IER; volatile uint32_t ESR; volatile uint32_t BTR; uint32_t RESERVED0[88]; CAN_TxMailBox_TypeDef sTxMailBox[3]; CAN_FIFOMailBox_TypeDef sFIFOMailBox[2]; uint32_t RESERVED1[12]; volatile uint32_t FMR; volatile uint32_t FM1R; uint32_t RESERVED2; volatile uint32_t FS1R; uint32_t RESERVED3; volatile uint32_t FFA1R; uint32_t RESERVED4; volatile uint32_t FA1R; uint32_t RESERVED5[8]; CAN_FilterRegister_TypeDef sFilterRegister[14]; } CAN_TypeDef; typedef struct { volatile uint32_t DR; volatile uint8_t IDR; uint8_t RESERVED0; uint16_t RESERVED1; volatile uint32_t CR; } CRC_TypeDef; typedef struct { volatile uint32_t CR; volatile uint32_t SWTRIGR; volatile uint32_t DHR12R1; volatile uint32_t DHR12L1; volatile uint32_t DHR8R1; volatile uint32_t DHR12R2; volatile uint32_t DHR12L2; volatile uint32_t DHR8R2; volatile uint32_t DHR12RD; volatile uint32_t DHR12LD; volatile uint32_t DHR8RD; volatile uint32_t DOR1; volatile uint32_t DOR2; } DAC_TypeDef; typedef struct { volatile uint32_t IDCODE; volatile uint32_t CR; } DBGMCU_TypeDef; typedef struct { volatile uint32_t CCR; volatile uint32_t CNDTR; volatile uint32_t CPAR; volatile uint32_t CMAR; } DMA_Channel_TypeDef; typedef struct { volatile uint32_t ISR; volatile uint32_t IFCR; } DMA_TypeDef; typedef struct { volatile uint32_t IMR; volatile uint32_t EMR; volatile uint32_t RTSR; volatile uint32_t FTSR; volatile uint32_t SWIER; volatile uint32_t PR; } EXTI_TypeDef; typedef struct { volatile uint32_t ACR; volatile uint32_t KEYR; volatile uint32_t OPTKEYR; volatile uint32_t SR; volatile uint32_t CR; volatile uint32_t AR; volatile uint32_t RESERVED; volatile uint32_t OBR; volatile uint32_t WRPR; } FLASH_TypeDef; typedef struct { volatile uint16_t RDP; volatile uint16_t USER; volatile uint16_t Data0; volatile uint16_t Data1; volatile uint16_t WRP0; volatile uint16_t WRP1; volatile uint16_t WRP2; volatile uint16_t WRP3; } OB_TypeDef; typedef struct { volatile uint32_t BTCR[8]; } FSMC_Bank1_TypeDef; typedef struct { volatile uint32_t BWTR[7]; } FSMC_Bank1E_TypeDef; typedef struct { volatile uint32_t PCR2; volatile uint32_t SR2; volatile uint32_t PMEM2; volatile uint32_t PATT2; uint32_t RESERVED0; volatile uint32_t ECCR2; } FSMC_Bank2_TypeDef; typedef struct { volatile uint32_t PCR3; volatile uint32_t SR3; volatile uint32_t PMEM3; volatile uint32_t PATT3; uint32_t RESERVED0; volatile uint32_t ECCR3; } FSMC_Bank3_TypeDef; typedef struct { volatile uint32_t PCR4; volatile uint32_t SR4; volatile uint32_t PMEM4; volatile uint32_t PATT4; volatile uint32_t PIO4; } FSMC_Bank4_TypeDef; typedef struct { volatile uint32_t CRL; volatile uint32_t CRH; volatile uint32_t IDR; volatile uint32_t ODR; volatile uint32_t BSRR; volatile uint32_t BRR; volatile uint32_t LCKR; } GPIO_TypeDef; typedef struct { volatile uint32_t EVCR; volatile uint32_t MAPR; volatile uint32_t EXTICR[4]; } AFIO_TypeDef; typedef struct { volatile uint16_t CR1; uint16_t RESERVED0; volatile uint16_t CR2; uint16_t RESERVED1; volatile uint16_t OAR1; uint16_t RESERVED2; volatile uint16_t OAR2; uint16_t RESERVED3; volatile uint16_t DR; uint16_t RESERVED4; volatile uint16_t SR1; uint16_t RESERVED5; volatile uint16_t SR2; uint16_t RESERVED6; volatile uint16_t CCR; uint16_t RESERVED7; volatile uint16_t TRISE; uint16_t RESERVED8; } I2C_TypeDef; typedef struct { volatile uint32_t KR; volatile uint32_t PR; volatile uint32_t RLR; volatile uint32_t SR; } IWDG_TypeDef; typedef struct { volatile uint32_t CR; volatile uint32_t CSR; } PWR_TypeDef; typedef struct { volatile uint32_t CR; volatile uint32_t CFGR; volatile uint32_t CIR; volatile uint32_t APB2RSTR; volatile uint32_t APB1RSTR; volatile uint32_t AHBENR; volatile uint32_t APB2ENR; volatile uint32_t APB1ENR; volatile uint32_t BDCR; volatile uint32_t CSR; } RCC_TypeDef; typedef struct { volatile uint16_t CRH; uint16_t RESERVED0; volatile uint16_t CRL; uint16_t RESERVED1; volatile uint16_t PRLH; uint16_t RESERVED2; volatile uint16_t PRLL; uint16_t RESERVED3; volatile uint16_t DIVH; uint16_t RESERVED4; volatile uint16_t DIVL; uint16_t RESERVED5; volatile uint16_t CNTH; uint16_t RESERVED6; volatile uint16_t CNTL; uint16_t RESERVED7; volatile uint16_t ALRH; uint16_t RESERVED8; volatile uint16_t ALRL; uint16_t RESERVED9; } RTC_TypeDef; typedef struct { volatile uint32_t POWER; volatile uint32_t CLKCR; volatile uint32_t ARG; volatile uint32_t CMD; volatile const uint32_t RESPCMD; volatile const uint32_t RESP1; volatile const uint32_t RESP2; volatile const uint32_t RESP3; volatile const uint32_t RESP4; volatile uint32_t DTIMER; volatile uint32_t DLEN; volatile uint32_t DCTRL; volatile const uint32_t DCOUNT; volatile const uint32_t STA; volatile uint32_t ICR; volatile uint32_t MASK; uint32_t RESERVED0[2]; volatile const uint32_t FIFOCNT; uint32_t RESERVED1[13]; volatile uint32_t FIFO; } SDIO_TypeDef; typedef struct { volatile uint16_t CR1; uint16_t RESERVED0; volatile uint16_t CR2; uint16_t RESERVED1; volatile uint16_t SR; uint16_t RESERVED2; volatile uint16_t DR; uint16_t RESERVED3; volatile uint16_t CRCPR; uint16_t RESERVED4; volatile uint16_t RXCRCR; uint16_t RESERVED5; volatile uint16_t TXCRCR; uint16_t RESERVED6; volatile uint16_t I2SCFGR; uint16_t RESERVED7; volatile uint16_t I2SPR; uint16_t RESERVED8; } SPI_TypeDef; typedef struct { volatile uint16_t CR1; uint16_t RESERVED0; volatile uint16_t CR2; uint16_t RESERVED1; volatile uint16_t SMCR; uint16_t RESERVED2; volatile uint16_t DIER; uint16_t RESERVED3; volatile uint16_t SR; uint16_t RESERVED4; volatile uint16_t EGR; uint16_t RESERVED5; volatile uint16_t CCMR1; uint16_t RESERVED6; volatile uint16_t CCMR2; uint16_t RESERVED7; volatile uint16_t CCER; uint16_t RESERVED8; volatile uint16_t CNT; uint16_t RESERVED9; volatile uint16_t PSC; uint16_t RESERVED10; volatile uint16_t ARR; uint16_t RESERVED11; volatile uint16_t RCR; uint16_t RESERVED12; volatile uint16_t CCR1; uint16_t RESERVED13; volatile uint16_t CCR2; uint16_t RESERVED14; volatile uint16_t CCR3; uint16_t RESERVED15; volatile uint16_t CCR4; uint16_t RESERVED16; volatile uint16_t BDTR; uint16_t RESERVED17; volatile uint16_t DCR; uint16_t RESERVED18; volatile uint16_t DMAR; uint16_t RESERVED19; } TIM_TypeDef; typedef struct { volatile uint16_t SR; uint16_t RESERVED0; volatile uint16_t DR; uint16_t RESERVED1; volatile uint16_t BRR; uint16_t RESERVED2; volatile uint16_t CR1; uint16_t RESERVED3; volatile uint16_t CR2; uint16_t RESERVED4; volatile uint16_t CR3; uint16_t RESERVED5; volatile uint16_t GTPR; uint16_t RESERVED6; } USART_TypeDef; typedef struct { volatile uint32_t CR; volatile uint32_t CFR; volatile uint32_t SR; } WWDG_TypeDef; #line 909 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 926 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 945 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1027 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1088 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1264 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1300 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1360 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1393 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1410 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1432 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1441 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1458 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1480 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1509 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1671 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1689 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1707 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1724 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1742 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1761 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1788 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1863 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1889 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1898 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1907 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1916 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1931 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1940 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1949 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1958 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1973 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1982 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1991 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2000 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2015 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2024 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2033 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2042 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2106 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2141 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2176 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2211 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2246 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2313 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2337 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2353 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2375 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2390 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2397 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2445 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2466 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2487 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2508 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2529 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2550 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2586 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2616 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2626 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2650 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2674 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2698 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2722 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2746 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2770 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2871 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2880 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2903 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3038 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3045 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3052 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3059 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3073 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3080 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3087 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3094 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3101 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3108 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3116 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3123 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3130 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3137 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3144 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3151 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3159 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3166 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3173 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3180 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3330 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3373 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3387 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3397 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3515 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3550 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3561 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3569 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3576 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3598 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3660 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3672 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3709 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3731 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3753 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 3775 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4172 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4181 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4190 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4201 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4211 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4221 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4231 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4242 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4252 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4262 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4272 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4283 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4293 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4303 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4313 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4324 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4334 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4344 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4354 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4365 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4375 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4385 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4395 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4406 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4416 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4426 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4436 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4447 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4457 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4467 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4477 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4525 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4595 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4610 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4636 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4857 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4869 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 4886 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5030 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5042 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5054 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5066 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5078 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5090 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5102 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5114 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5128 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5140 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5152 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5164 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5176 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5188 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5200 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5212 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5224 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5236 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5248 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5260 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5272 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5284 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5296 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5308 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5328 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5339 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5357 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5395 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5416 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5556 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5573 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5590 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5607 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5641 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5675 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5709 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5743 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5777 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5811 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5845 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5879 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5913 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5947 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 5981 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6015 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6049 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6083 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6117 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6151 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6185 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6219 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6253 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6287 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6321 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6355 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6389 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6423 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6457 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6491 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6525 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6559 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6586 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6594 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6604 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6665 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6674 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6695 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6720 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6730 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6756 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6779 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6788 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6807 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6818 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6847 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6871 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6911 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 6997 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" typedef struct { uint32_t ADC_Mode; FunctionalState ADC_ScanConvMode; FunctionalState ADC_ContinuousConvMode; uint32_t ADC_ExternalTrigConv; uint32_t ADC_DataAlign; uint8_t ADC_NbrOfChannel; } ADC_InitTypeDef; #line 83 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 94 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 112 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 130 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 145 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 183 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 193 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 217 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 266 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 282 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 297 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 305 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" #line 338 "..\\src\\STM32Lib\\\\stm32f10x_adc.h" void ADC_DeInit(ADC_TypeDef *ADCx); void ADC_Init(ADC_TypeDef *ADCx, ADC_InitTypeDef *ADC_InitStruct); void ADC_StructInit(ADC_InitTypeDef *ADC_InitStruct); void ADC_Cmd(ADC_TypeDef *ADCx, FunctionalState NewState); void ADC_DMACmd(ADC_TypeDef *ADCx, FunctionalState NewState); void ADC_ITConfig(ADC_TypeDef *ADCx, uint16_t ADC_IT, FunctionalState NewState); void ADC_ResetCalibration(ADC_TypeDef *ADCx); FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef *ADCx); void ADC_StartCalibration(ADC_TypeDef *ADCx); FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef *ADCx); void ADC_SoftwareStartConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState); FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef *ADCx); void ADC_DiscModeChannelCountConfig(ADC_TypeDef *ADCx, uint8_t Number); void ADC_DiscModeCmd(ADC_TypeDef *ADCx, FunctionalState NewState); void ADC_RegularChannelConfig(ADC_TypeDef *ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); void ADC_ExternalTrigConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState); uint16_t ADC_GetConversionValue(ADC_TypeDef *ADCx); uint32_t ADC_GetDualModeConversionValue(void); void ADC_AutoInjectedConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState); void ADC_InjectedDiscModeCmd(ADC_TypeDef *ADCx, FunctionalState NewState); void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef *ADCx, uint32_t ADC_ExternalTrigInjecConv); void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState); void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef *ADCx, FunctionalState NewState); FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef *ADCx); void ADC_InjectedChannelConfig(ADC_TypeDef *ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); void ADC_InjectedSequencerLengthConfig(ADC_TypeDef *ADCx, uint8_t Length); void ADC_SetInjectedOffset(ADC_TypeDef *ADCx, uint8_t ADC_InjectedChannel, uint16_t Offset); uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef *ADCx, uint8_t ADC_InjectedChannel); void ADC_AnalogWatchdogCmd(ADC_TypeDef *ADCx, uint32_t ADC_AnalogWatchdog); void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef *ADCx, uint16_t HighThreshold, uint16_t LowThreshold); void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef *ADCx, uint8_t ADC_Channel); void ADC_TempSensorVrefintCmd(FunctionalState NewState); FlagStatus ADC_GetFlagStatus(ADC_TypeDef *ADCx, uint8_t ADC_FLAG); void ADC_ClearFlag(ADC_TypeDef *ADCx, uint8_t ADC_FLAG); ITStatus ADC_GetITStatus(ADC_TypeDef *ADCx, uint16_t ADC_IT); void ADC_ClearITPendingBit(ADC_TypeDef *ADCx, uint16_t ADC_IT); #line 28 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_dac.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_dac.h" typedef struct { uint32_t DAC_Trigger; uint32_t DAC_WaveGeneration; uint32_t DAC_LFSRUnmask_TriangleAmplitude; uint32_t DAC_OutputBuffer; } DAC_InitTypeDef; #line 74 "..\\src\\STM32Lib\\\\stm32f10x_dac.h" #line 84 "..\\src\\STM32Lib\\\\stm32f10x_dac.h" #line 99 "..\\src\\STM32Lib\\\\stm32f10x_dac.h" #line 131 "..\\src\\STM32Lib\\\\stm32f10x_dac.h" #line 156 "..\\src\\STM32Lib\\\\stm32f10x_dac.h" #line 194 "..\\src\\STM32Lib\\\\stm32f10x_dac.h" void DAC_DeInit(void); void DAC_Init(uint32_t DAC_Channel, DAC_InitTypeDef *DAC_InitStruct); void DAC_StructInit(DAC_InitTypeDef *DAC_InitStruct); void DAC_Cmd(uint32_t DAC_Channel, FunctionalState NewState); void DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState); void DAC_SoftwareTriggerCmd(uint32_t DAC_Channel, FunctionalState NewState); void DAC_DualSoftwareTriggerCmd(FunctionalState NewState); void DAC_WaveGenerationCmd(uint32_t DAC_Channel, uint32_t DAC_Wave, FunctionalState NewState); void DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data); void DAC_SetChannel2Data(uint32_t DAC_Align, uint16_t Data); void DAC_SetDualChannelData(uint32_t DAC_Align, uint16_t Data2, uint16_t Data1); uint16_t DAC_GetDataOutputValue(uint32_t DAC_Channel); #line 32 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" typedef struct { uint32_t DMA_PeripheralBaseAddr; uint32_t DMA_MemoryBaseAddr; uint32_t DMA_DIR; uint32_t DMA_BufferSize; uint32_t DMA_PeripheralInc; uint32_t DMA_MemoryInc; uint32_t DMA_PeripheralDataSize; uint32_t DMA_MemoryDataSize; uint32_t DMA_Mode; uint32_t DMA_Priority; uint32_t DMA_M2M; } DMA_InitTypeDef; #line 80 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" #line 127 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" #line 141 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" #line 168 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" #line 225 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" #line 250 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" #line 277 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" #line 318 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" #line 343 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" #line 370 "..\\src\\STM32Lib\\\\stm32f10x_dma.h" void DMA_DeInit(DMA_Channel_TypeDef *DMAy_Channelx); void DMA_Init(DMA_Channel_TypeDef *DMAy_Channelx, DMA_InitTypeDef *DMA_InitStruct); void DMA_StructInit(DMA_InitTypeDef *DMA_InitStruct); void DMA_Cmd(DMA_Channel_TypeDef *DMAy_Channelx, FunctionalState NewState); void DMA_ITConfig(DMA_Channel_TypeDef *DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState); uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef *DMAy_Channelx); FlagStatus DMA_GetFlagStatus(uint32_t DMA_FLAG); void DMA_ClearFlag(uint32_t DMA_FLAG); ITStatus DMA_GetITStatus(uint32_t DMA_IT); void DMA_ClearITPendingBit(uint32_t DMA_IT); #line 34 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_exti.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_exti.h" typedef enum { EXTI_Mode_Interrupt = 0x00, EXTI_Mode_Event = 0x04 } EXTIMode_TypeDef; typedef enum { EXTI_Trigger_Rising = 0x08, EXTI_Trigger_Falling = 0x0C, EXTI_Trigger_Rising_Falling = 0x10 } EXTITrigger_TypeDef; typedef struct { uint32_t EXTI_Line; EXTIMode_TypeDef EXTI_Mode; EXTITrigger_TypeDef EXTI_Trigger; FunctionalState EXTI_LineCmd; } EXTI_InitTypeDef; #line 114 "..\\src\\STM32Lib\\\\stm32f10x_exti.h" #line 127 "..\\src\\STM32Lib\\\\stm32f10x_exti.h" void EXTI_DeInit(void); void EXTI_Init(EXTI_InitTypeDef *EXTI_InitStruct); void EXTI_StructInit(EXTI_InitTypeDef *EXTI_InitStruct); void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line); FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line); void EXTI_ClearFlag(uint32_t EXTI_Line); ITStatus EXTI_GetITStatus(uint32_t EXTI_Line); void EXTI_ClearITPendingBit(uint32_t EXTI_Line); #line 35 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_fsmc.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_fsmc.h" typedef struct { uint32_t FSMC_AddressSetupTime; uint32_t FSMC_AddressHoldTime; uint32_t FSMC_DataSetupTime; uint32_t FSMC_BusTurnAroundDuration; uint32_t FSMC_CLKDivision; uint32_t FSMC_DataLatency; uint32_t FSMC_AccessMode; } FSMC_NORSRAMTimingInitTypeDef; typedef struct { uint32_t FSMC_Bank; uint32_t FSMC_DataAddressMux; uint32_t FSMC_MemoryType; uint32_t FSMC_MemoryDataWidth; uint32_t FSMC_BurstAccessMode; uint32_t FSMC_WaitSignalPolarity; uint32_t FSMC_WrapMode; uint32_t FSMC_WaitSignalActive; uint32_t FSMC_WriteOperation; uint32_t FSMC_WaitSignal; uint32_t FSMC_ExtendedMode; uint32_t FSMC_WriteBurst; FSMC_NORSRAMTimingInitTypeDef *FSMC_ReadWriteTimingStruct; FSMC_NORSRAMTimingInitTypeDef *FSMC_WriteTimingStruct; } FSMC_NORSRAMInitTypeDef; typedef struct { uint32_t FSMC_SetupTime; uint32_t FSMC_WaitSetupTime; uint32_t FSMC_HoldSetupTime; uint32_t FSMC_HiZSetupTime; } FSMC_NAND_PCCARDTimingInitTypeDef; typedef struct { uint32_t FSMC_Bank; uint32_t FSMC_Waitfeature; uint32_t FSMC_MemoryDataWidth; uint32_t FSMC_ECC; uint32_t FSMC_ECCPageSize; uint32_t FSMC_TCLRSetupTime; uint32_t FSMC_TARSetupTime; FSMC_NAND_PCCARDTimingInitTypeDef *FSMC_CommonSpaceTimingStruct; FSMC_NAND_PCCARDTimingInitTypeDef *FSMC_AttributeSpaceTimingStruct; } FSMC_NANDInitTypeDef; typedef struct { uint32_t FSMC_Waitfeature; uint32_t FSMC_TCLRSetupTime; uint32_t FSMC_TARSetupTime; FSMC_NAND_PCCARDTimingInitTypeDef *FSMC_CommonSpaceTimingStruct; FSMC_NAND_PCCARDTimingInitTypeDef *FSMC_AttributeSpaceTimingStruct; FSMC_NAND_PCCARDTimingInitTypeDef *FSMC_IOSpaceTimingStruct; } FSMC_PCCARDInitTypeDef; #line 140 "..\\src\\STM32Lib\\\\stm32f10x_fsmc.h" #line 187 "..\\src\\STM32Lib\\\\stm32f10x_fsmc.h" #line 379 "..\\src\\STM32Lib\\\\stm32f10x_fsmc.h" #line 446 "..\\src\\STM32Lib\\\\stm32f10x_fsmc.h" #line 522 "..\\src\\STM32Lib\\\\stm32f10x_fsmc.h" #line 538 "..\\src\\STM32Lib\\\\stm32f10x_fsmc.h" void FSMC_NORSRAMDeInit(uint32_t FSMC_Bank); void FSMC_NANDDeInit(uint32_t FSMC_Bank); void FSMC_PCCARDDeInit(void); void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef *FSMC_NORSRAMInitStruct); void FSMC_NANDInit(FSMC_NANDInitTypeDef *FSMC_NANDInitStruct); void FSMC_PCCARDInit(FSMC_PCCARDInitTypeDef *FSMC_PCCARDInitStruct); void FSMC_NORSRAMStructInit(FSMC_NORSRAMInitTypeDef *FSMC_NORSRAMInitStruct); void FSMC_NANDStructInit(FSMC_NANDInitTypeDef *FSMC_NANDInitStruct); void FSMC_PCCARDStructInit(FSMC_PCCARDInitTypeDef *FSMC_PCCARDInitStruct); void FSMC_NORSRAMCmd(uint32_t FSMC_Bank, FunctionalState NewState); void FSMC_NANDCmd(uint32_t FSMC_Bank, FunctionalState NewState); void FSMC_PCCARDCmd(FunctionalState NewState); void FSMC_NANDECCCmd(uint32_t FSMC_Bank, FunctionalState NewState); uint32_t FSMC_GetECC(uint32_t FSMC_Bank); void FSMC_ITConfig(uint32_t FSMC_Bank, uint32_t FSMC_IT, FunctionalState NewState); FlagStatus FSMC_GetFlagStatus(uint32_t FSMC_Bank, uint32_t FSMC_FLAG); void FSMC_ClearFlag(uint32_t FSMC_Bank, uint32_t FSMC_FLAG); ITStatus FSMC_GetITStatus(uint32_t FSMC_Bank, uint32_t FSMC_IT); void FSMC_ClearITPendingBit(uint32_t FSMC_Bank, uint32_t FSMC_IT); #line 37 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" #line 48 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" typedef enum { GPIO_Speed_10MHz = 1, GPIO_Speed_2MHz, GPIO_Speed_50MHz } GPIOSpeed_TypeDef; typedef enum { GPIO_Mode_AIN = 0x0, GPIO_Mode_IN_FLOATING = 0x04, GPIO_Mode_IPD = 0x28, GPIO_Mode_IPU = 0x48, GPIO_Mode_Out_OD = 0x14, GPIO_Mode_Out_PP = 0x10, GPIO_Mode_AF_OD = 0x1C, GPIO_Mode_AF_PP = 0x18 } GPIOMode_TypeDef; typedef struct { uint16_t GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; } GPIO_InitTypeDef; typedef enum { Bit_RESET = 0, Bit_SET } BitAction; #line 135 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" #line 154 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" #line 188 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" #line 202 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" #line 223 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" #line 231 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" #line 256 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" #line 273 "..\\src\\STM32Lib\\\\stm32f10x_gpio.h" void GPIO_DeInit(GPIO_TypeDef *GPIOx); void GPIO_AFIODeInit(void); void GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_InitStruct); void GPIO_StructInit(GPIO_InitTypeDef *GPIO_InitStruct); uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); uint16_t GPIO_ReadInputData(GPIO_TypeDef *GPIOx); uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); uint16_t GPIO_ReadOutputData(GPIO_TypeDef *GPIOx); void GPIO_SetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); void GPIO_ResetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); void GPIO_WriteBit(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, BitAction BitVal); void GPIO_Write(GPIO_TypeDef *GPIOx, uint16_t PortVal); void GPIO_PinLockConfig(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); void GPIO_EventOutputCmd(FunctionalState NewState); void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState); void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); #line 38 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_i2c.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_i2c.h" typedef struct { uint16_t I2C_Mode; uint16_t I2C_DutyCycle; uint16_t I2C_OwnAddress1; uint16_t I2C_Ack; uint16_t I2C_AcknowledgedAddress; uint32_t I2C_ClockSpeed; } I2C_InitTypeDef; #line 76 "..\\src\\STM32Lib\\\\stm32f10x_i2c.h" #line 150 "..\\src\\STM32Lib\\\\stm32f10x_i2c.h" #line 208 "..\\src\\STM32Lib\\\\stm32f10x_i2c.h" #line 218 "..\\src\\STM32Lib\\\\stm32f10x_i2c.h" #line 237 "..\\src\\STM32Lib\\\\stm32f10x_i2c.h" #line 256 "..\\src\\STM32Lib\\\\stm32f10x_i2c.h" #line 270 "..\\src\\STM32Lib\\\\stm32f10x_i2c.h" #line 369 "..\\src\\STM32Lib\\\\stm32f10x_i2c.h" void I2C_DeInit(I2C_TypeDef *I2Cx); void I2C_Init(I2C_TypeDef *I2Cx, I2C_InitTypeDef *I2C_InitStruct); void I2C_StructInit(I2C_InitTypeDef *I2C_InitStruct); void I2C_Cmd(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_DMACmd(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_DMALastTransferCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_GenerateSTART(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_GenerateSTOP(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_AcknowledgeConfig(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_OwnAddress2Config(I2C_TypeDef *I2Cx, uint8_t Address); void I2C_DualAddressCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_GeneralCallCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_ITConfig(I2C_TypeDef *I2Cx, uint16_t I2C_IT, FunctionalState NewState); void I2C_SendData(I2C_TypeDef *I2Cx, uint8_t Data); uint8_t I2C_ReceiveData(I2C_TypeDef *I2Cx); void I2C_Send7bitAddress(I2C_TypeDef *I2Cx, uint8_t Address, uint8_t I2C_Direction); uint16_t I2C_ReadRegister(I2C_TypeDef *I2Cx, uint8_t I2C_Register); void I2C_SoftwareResetCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_SMBusAlertConfig(I2C_TypeDef *I2Cx, uint16_t I2C_SMBusAlert); void I2C_TransmitPEC(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_PECPositionConfig(I2C_TypeDef *I2Cx, uint16_t I2C_PECPosition); void I2C_CalculatePEC(I2C_TypeDef *I2Cx, FunctionalState NewState); uint8_t I2C_GetPEC(I2C_TypeDef *I2Cx); void I2C_ARPCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_StretchClockCmd(I2C_TypeDef *I2Cx, FunctionalState NewState); void I2C_FastModeDutyCycleConfig(I2C_TypeDef *I2Cx, uint16_t I2C_DutyCycle); uint32_t I2C_GetLastEvent(I2C_TypeDef *I2Cx); ErrorStatus I2C_CheckEvent(I2C_TypeDef *I2Cx, uint32_t I2C_EVENT); FlagStatus I2C_GetFlagStatus(I2C_TypeDef *I2Cx, uint32_t I2C_FLAG); void I2C_ClearFlag(I2C_TypeDef *I2Cx, uint32_t I2C_FLAG); ITStatus I2C_GetITStatus(I2C_TypeDef *I2Cx, uint32_t I2C_IT); void I2C_ClearITPendingBit(I2C_TypeDef *I2Cx, uint32_t I2C_IT); #line 39 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" typedef struct { uint32_t SYSCLK_Frequency; uint32_t HCLK_Frequency; uint32_t PCLK1_Frequency; uint32_t PCLK2_Frequency; uint32_t ADCCLK_Frequency; } RCC_ClocksTypeDef; #line 82 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 113 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 127 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 149 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 165 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 183 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 211 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 238 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 254 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 278 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 309 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 327 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" #line 352 "..\\src\\STM32Lib\\\\stm32f10x_rcc.h" void RCC_DeInit(void); void RCC_HSEConfig(uint32_t RCC_HSE); ErrorStatus RCC_WaitForHSEStartUp(void); void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue); void RCC_HSICmd(FunctionalState NewState); void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul); void RCC_PLLCmd(FunctionalState NewState); void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource); uint8_t RCC_GetSYSCLKSource(void); void RCC_HCLKConfig(uint32_t RCC_SYSCLK); void RCC_PCLK1Config(uint32_t RCC_HCLK); void RCC_PCLK2Config(uint32_t RCC_HCLK); void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState); void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource); void RCC_ADCCLKConfig(uint32_t RCC_PCLK2); void RCC_LSEConfig(uint8_t RCC_LSE); void RCC_LSICmd(FunctionalState NewState); void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource); void RCC_RTCCLKCmd(FunctionalState NewState); void RCC_GetClocksFreq(RCC_ClocksTypeDef *RCC_Clocks); void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState); void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState); void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState); void RCC_BackupResetCmd(FunctionalState NewState); void RCC_ClockSecuritySystemCmd(FunctionalState NewState); void RCC_MCOConfig(uint8_t RCC_MCO); FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG); void RCC_ClearFlag(void); ITStatus RCC_GetITStatus(uint8_t RCC_IT); void RCC_ClearITPendingBit(uint8_t RCC_IT); #line 42 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_spi.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_spi.h" typedef struct { uint16_t SPI_Direction; uint16_t SPI_Mode; uint16_t SPI_DataSize; uint16_t SPI_CPOL; uint16_t SPI_CPHA; uint16_t SPI_NSS; uint16_t SPI_BaudRatePrescaler; uint16_t SPI_FirstBit; uint16_t SPI_CRCPolynomial; } SPI_InitTypeDef; typedef struct { uint16_t I2S_Mode; uint16_t I2S_Standard; uint16_t I2S_DataFormat; uint16_t I2S_MCLKOutput; uint16_t I2S_AudioFreq; uint16_t I2S_CPOL; } I2S_InitTypeDef; #line 98 "..\\src\\STM32Lib\\\\stm32f10x_spi.h" #line 182 "..\\src\\STM32Lib\\\\stm32f10x_spi.h" #line 210 "..\\src\\STM32Lib\\\\stm32f10x_spi.h" #line 228 "..\\src\\STM32Lib\\\\stm32f10x_spi.h" #line 244 "..\\src\\STM32Lib\\\\stm32f10x_spi.h" #line 276 "..\\src\\STM32Lib\\\\stm32f10x_spi.h" #line 356 "..\\src\\STM32Lib\\\\stm32f10x_spi.h" #line 377 "..\\src\\STM32Lib\\\\stm32f10x_spi.h" void SPI_I2S_DeInit(SPI_TypeDef *SPIx); void SPI_Init(SPI_TypeDef *SPIx, SPI_InitTypeDef *SPI_InitStruct); void I2S_Init(SPI_TypeDef *SPIx, I2S_InitTypeDef *I2S_InitStruct); void SPI_StructInit(SPI_InitTypeDef *SPI_InitStruct); void I2S_StructInit(I2S_InitTypeDef *I2S_InitStruct); void SPI_Cmd(SPI_TypeDef *SPIx, FunctionalState NewState); void I2S_Cmd(SPI_TypeDef *SPIx, FunctionalState NewState); void SPI_I2S_ITConfig(SPI_TypeDef *SPIx, uint8_t SPI_I2S_IT, FunctionalState NewState); void SPI_I2S_DMACmd(SPI_TypeDef *SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState); void SPI_I2S_SendData(SPI_TypeDef *SPIx, uint16_t Data); uint16_t SPI_I2S_ReceiveData(SPI_TypeDef *SPIx); void SPI_NSSInternalSoftwareConfig(SPI_TypeDef *SPIx, uint16_t SPI_NSSInternalSoft); void SPI_SSOutputCmd(SPI_TypeDef *SPIx, FunctionalState NewState); void SPI_DataSizeConfig(SPI_TypeDef *SPIx, uint16_t SPI_DataSize); void SPI_TransmitCRC(SPI_TypeDef *SPIx); void SPI_CalculateCRC(SPI_TypeDef *SPIx, FunctionalState NewState); uint16_t SPI_GetCRC(SPI_TypeDef *SPIx, uint8_t SPI_CRC); uint16_t SPI_GetCRCPolynomial(SPI_TypeDef *SPIx); void SPI_BiDirectionalLineConfig(SPI_TypeDef *SPIx, uint16_t SPI_Direction); FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef *SPIx, uint16_t SPI_I2S_FLAG); void SPI_I2S_ClearFlag(SPI_TypeDef *SPIx, uint16_t SPI_I2S_FLAG); ITStatus SPI_I2S_GetITStatus(SPI_TypeDef *SPIx, uint8_t SPI_I2S_IT); void SPI_I2S_ClearITPendingBit(SPI_TypeDef *SPIx, uint8_t SPI_I2S_IT); #line 45 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" typedef struct { uint16_t TIM_Prescaler; uint16_t TIM_CounterMode; uint16_t TIM_Period; uint16_t TIM_ClockDivision; uint8_t TIM_RepetitionCounter; } TIM_TimeBaseInitTypeDef; typedef struct { uint16_t TIM_OCMode; uint16_t TIM_OutputState; uint16_t TIM_OutputNState; uint16_t TIM_Pulse; uint16_t TIM_OCPolarity; uint16_t TIM_OCNPolarity; uint16_t TIM_OCIdleState; uint16_t TIM_OCNIdleState; } TIM_OCInitTypeDef; typedef struct { uint16_t TIM_Channel; uint16_t TIM_ICPolarity; uint16_t TIM_ICSelection; uint16_t TIM_ICPrescaler; uint16_t TIM_ICFilter; } TIM_ICInitTypeDef; typedef struct { uint16_t TIM_OSSRState; uint16_t TIM_OSSIState; uint16_t TIM_LOCKLevel; uint16_t TIM_DeadTime; uint16_t TIM_Break; uint16_t TIM_BreakPolarity; uint16_t TIM_AutomaticOutput; } TIM_BDTRInitTypeDef; #line 118 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 146 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 179 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 193 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 211 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 335 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 409 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 425 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 457 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 503 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 547 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 570 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 586 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 614 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 628 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 677 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 702 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 810 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 826 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" #line 895 "..\\src\\STM32Lib\\\\stm32f10x_tim.h" void TIM_DeInit(TIM_TypeDef *TIMx); void TIM_TimeBaseInit(TIM_TypeDef *TIMx, TIM_TimeBaseInitTypeDef *TIM_TimeBaseInitStruct); void TIM_OC1Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct); void TIM_OC2Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct); void TIM_OC3Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct); void TIM_OC4Init(TIM_TypeDef *TIMx, TIM_OCInitTypeDef *TIM_OCInitStruct); void TIM_ICInit(TIM_TypeDef *TIMx, TIM_ICInitTypeDef *TIM_ICInitStruct); void TIM_PWMIConfig(TIM_TypeDef *TIMx, TIM_ICInitTypeDef *TIM_ICInitStruct); void TIM_BDTRConfig(TIM_TypeDef *TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct); void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef *TIM_TimeBaseInitStruct); void TIM_OCStructInit(TIM_OCInitTypeDef *TIM_OCInitStruct); void TIM_ICStructInit(TIM_ICInitTypeDef *TIM_ICInitStruct); void TIM_BDTRStructInit(TIM_BDTRInitTypeDef *TIM_BDTRInitStruct); void TIM_Cmd(TIM_TypeDef *TIMx, FunctionalState NewState); void TIM_CtrlPWMOutputs(TIM_TypeDef *TIMx, FunctionalState NewState); void TIM_ITConfig(TIM_TypeDef *TIMx, uint16_t TIM_IT, FunctionalState NewState); void TIM_GenerateEvent(TIM_TypeDef *TIMx, uint16_t TIM_EventSource); void TIM_DMAConfig(TIM_TypeDef *TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength); void TIM_DMACmd(TIM_TypeDef *TIMx, uint16_t TIM_DMASource, FunctionalState NewState); void TIM_InternalClockConfig(TIM_TypeDef *TIMx); void TIM_ITRxExternalClockConfig(TIM_TypeDef *TIMx, uint16_t TIM_InputTriggerSource); void TIM_TIxExternalClockConfig(TIM_TypeDef *TIMx, uint16_t TIM_TIxExternalCLKSource, uint16_t TIM_ICPolarity, uint16_t ICFilter); void TIM_ETRClockMode1Config(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter); void TIM_ETRClockMode2Config(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter); void TIM_ETRConfig(TIM_TypeDef *TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter); void TIM_PrescalerConfig(TIM_TypeDef *TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode); void TIM_CounterModeConfig(TIM_TypeDef *TIMx, uint16_t TIM_CounterMode); void TIM_SelectInputTrigger(TIM_TypeDef *TIMx, uint16_t TIM_InputTriggerSource); void TIM_EncoderInterfaceConfig(TIM_TypeDef *TIMx, uint16_t TIM_EncoderMode, uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity); void TIM_ForcedOC1Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction); void TIM_ForcedOC2Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction); void TIM_ForcedOC3Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction); void TIM_ForcedOC4Config(TIM_TypeDef *TIMx, uint16_t TIM_ForcedAction); void TIM_ARRPreloadConfig(TIM_TypeDef *TIMx, FunctionalState NewState); void TIM_SelectCOM(TIM_TypeDef *TIMx, FunctionalState NewState); void TIM_SelectCCDMA(TIM_TypeDef *TIMx, FunctionalState NewState); void TIM_CCPreloadControl(TIM_TypeDef *TIMx, FunctionalState NewState); void TIM_OC1PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload); void TIM_OC2PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload); void TIM_OC3PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload); void TIM_OC4PreloadConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPreload); void TIM_OC1FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast); void TIM_OC2FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast); void TIM_OC3FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast); void TIM_OC4FastConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCFast); void TIM_ClearOC1Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear); void TIM_ClearOC2Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear); void TIM_ClearOC3Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear); void TIM_ClearOC4Ref(TIM_TypeDef *TIMx, uint16_t TIM_OCClear); void TIM_OC1PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity); void TIM_OC1NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity); void TIM_OC2PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity); void TIM_OC2NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity); void TIM_OC3PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity); void TIM_OC3NPolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCNPolarity); void TIM_OC4PolarityConfig(TIM_TypeDef *TIMx, uint16_t TIM_OCPolarity); void TIM_CCxCmd(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx); void TIM_CCxNCmd(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN); void TIM_SelectOCxM(TIM_TypeDef *TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode); void TIM_UpdateDisableConfig(TIM_TypeDef *TIMx, FunctionalState NewState); void TIM_UpdateRequestConfig(TIM_TypeDef *TIMx, uint16_t TIM_UpdateSource); void TIM_SelectHallSensor(TIM_TypeDef *TIMx, FunctionalState NewState); void TIM_SelectOnePulseMode(TIM_TypeDef *TIMx, uint16_t TIM_OPMode); void TIM_SelectOutputTrigger(TIM_TypeDef *TIMx, uint16_t TIM_TRGOSource); void TIM_SelectSlaveMode(TIM_TypeDef *TIMx, uint16_t TIM_SlaveMode); void TIM_SelectMasterSlaveMode(TIM_TypeDef *TIMx, uint16_t TIM_MasterSlaveMode); void TIM_SetCounter(TIM_TypeDef *TIMx, uint16_t Counter); void TIM_SetAutoreload(TIM_TypeDef *TIMx, uint16_t Autoreload); void TIM_SetCompare1(TIM_TypeDef *TIMx, uint16_t Compare1); void TIM_SetCompare2(TIM_TypeDef *TIMx, uint16_t Compare2); void TIM_SetCompare3(TIM_TypeDef *TIMx, uint16_t Compare3); void TIM_SetCompare4(TIM_TypeDef *TIMx, uint16_t Compare4); void TIM_SetIC1Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC); void TIM_SetIC2Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC); void TIM_SetIC3Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC); void TIM_SetIC4Prescaler(TIM_TypeDef *TIMx, uint16_t TIM_ICPSC); void TIM_SetClockDivision(TIM_TypeDef *TIMx, uint16_t TIM_CKD); uint16_t TIM_GetCapture1(TIM_TypeDef *TIMx); uint16_t TIM_GetCapture2(TIM_TypeDef *TIMx); uint16_t TIM_GetCapture3(TIM_TypeDef *TIMx); uint16_t TIM_GetCapture4(TIM_TypeDef *TIMx); uint16_t TIM_GetCounter(TIM_TypeDef *TIMx); uint16_t TIM_GetPrescaler(TIM_TypeDef *TIMx); FlagStatus TIM_GetFlagStatus(TIM_TypeDef *TIMx, uint16_t TIM_FLAG); void TIM_ClearFlag(TIM_TypeDef *TIMx, uint16_t TIM_FLAG); ITStatus TIM_GetITStatus(TIM_TypeDef *TIMx, uint16_t TIM_IT); void TIM_ClearITPendingBit(TIM_TypeDef *TIMx, uint16_t TIM_IT); #line 46 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\stm32f10x_usart.h" #line 28 "..\\src\\STM32Lib\\\\stm32f10x_usart.h" typedef struct { uint32_t USART_BaudRate; uint16_t USART_WordLength; uint16_t USART_StopBits; uint16_t USART_Parity; uint16_t USART_Mode; uint16_t USART_HardwareFlowControl; } USART_InitTypeDef; typedef struct { uint16_t USART_Clock; uint16_t USART_CPOL; uint16_t USART_CPHA; uint16_t USART_LastBit; } USART_ClockInitTypeDef; #line 87 "..\\src\\STM32Lib\\\\stm32f10x_usart.h" #line 112 "..\\src\\STM32Lib\\\\stm32f10x_usart.h" #line 126 "..\\src\\STM32Lib\\\\stm32f10x_usart.h" #line 156 "..\\src\\STM32Lib\\\\stm32f10x_usart.h" #line 236 "..\\src\\STM32Lib\\\\stm32f10x_usart.h" #line 308 "..\\src\\STM32Lib\\\\stm32f10x_usart.h" #line 316 "..\\src\\STM32Lib\\\\stm32f10x_usart.h" void USART_DeInit(USART_TypeDef *USARTx); void USART_Init(USART_TypeDef *USARTx, USART_InitTypeDef *USART_InitStruct); void USART_StructInit(USART_InitTypeDef *USART_InitStruct); void USART_ClockInit(USART_TypeDef *USARTx, USART_ClockInitTypeDef *USART_ClockInitStruct); void USART_ClockStructInit(USART_ClockInitTypeDef *USART_ClockInitStruct); void USART_Cmd(USART_TypeDef *USARTx, FunctionalState NewState); void USART_ITConfig(USART_TypeDef *USARTx, uint16_t USART_IT, FunctionalState NewState); void USART_DMACmd(USART_TypeDef *USARTx, uint16_t USART_DMAReq, FunctionalState NewState); void USART_SetAddress(USART_TypeDef *USARTx, uint8_t USART_Address); void USART_WakeUpConfig(USART_TypeDef *USARTx, uint16_t USART_WakeUp); void USART_ReceiverWakeUpCmd(USART_TypeDef *USARTx, FunctionalState NewState); void USART_LINBreakDetectLengthConfig(USART_TypeDef *USARTx, uint16_t USART_LINBreakDetectLength); void USART_LINCmd(USART_TypeDef *USARTx, FunctionalState NewState); void USART_SendData(USART_TypeDef *USARTx, uint16_t Data); uint16_t USART_ReceiveData(USART_TypeDef *USARTx); void USART_SendBreak(USART_TypeDef *USARTx); void USART_SetGuardTime(USART_TypeDef *USARTx, uint8_t USART_GuardTime); void USART_SetPrescaler(USART_TypeDef *USARTx, uint8_t USART_Prescaler); void USART_SmartCardCmd(USART_TypeDef *USARTx, FunctionalState NewState); void USART_SmartCardNACKCmd(USART_TypeDef *USARTx, FunctionalState NewState); void USART_HalfDuplexCmd(USART_TypeDef *USARTx, FunctionalState NewState); void USART_IrDAConfig(USART_TypeDef *USARTx, uint16_t USART_IrDAMode); void USART_IrDACmd(USART_TypeDef *USARTx, FunctionalState NewState); FlagStatus USART_GetFlagStatus(USART_TypeDef *USARTx, uint16_t USART_FLAG); void USART_ClearFlag(USART_TypeDef *USARTx, uint16_t USART_FLAG); ITStatus USART_GetITStatus(USART_TypeDef *USARTx, uint16_t USART_IT); void USART_ClearITPendingBit(USART_TypeDef *USARTx, uint16_t USART_IT); #line 47 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 1 "..\\src\\STM32Lib\\\\misc.h" #line 28 "..\\src\\STM32Lib\\\\misc.h" typedef struct { uint8_t NVIC_IRQChannel; uint8_t NVIC_IRQChannelPreemptionPriority; uint8_t NVIC_IRQChannelSubPriority; FunctionalState NVIC_IRQChannelCmd; } NVIC_InitTypeDef; #line 83 "..\\src\\STM32Lib\\\\misc.h" #line 101 "..\\src\\STM32Lib\\\\misc.h" void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); void NVIC_Init(NVIC_InitTypeDef *NVIC_InitStruct); void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset); void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState); void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource); #line 49 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 73 "..\\src\\STM32Lib\\\\stm32f10x_conf.h" #line 6972 "..\\src\\STM32Lib\\\\stm32f10x.h" #line 2 "..\\src\\main.c" #line 1 "..\\src\\main.h" typedef unsigned long long u64; typedef signed long long s64; #line 37 "..\\src\\main.h" #line 48 "..\\src\\main.h" #line 56 "..\\src\\main.h" #line 72 "..\\src\\main.h" #line 102 "..\\src\\main.h" #line 133 "..\\src\\main.h" #line 140 "..\\src\\main.h" #line 153 "..\\src\\main.h" #line 164 "..\\src\\main.h" #line 179 "..\\src\\main.h" #line 191 "..\\src\\main.h" #line 231 "..\\src\\main.h" #line 268 "..\\src\\main.h" #line 346 "..\\src\\main.h" typedef struct { uint16_t USART_WordLength; uint16_t USART_StopBits; uint16_t USART_Parity; uint16_t USART_Mode; uint16_t USART_HardwareFlowControl; } Wireless_Config_TypeDef; typedef struct { volatile u16 RUN_SPEED; volatile u16 RUN_SPEED_NUM; volatile u16 RUN_TIME_OVER; volatile u8 POST_SET; volatile u8 POST_STATUS; volatile u8 POST_CLOSE; volatile u8 POST_GAP; volatile u8 POST_HALF; volatile u8 POST_OPEN; volatile u8 POST_CLOSE_BACK[2]; volatile u8 POST_GAP_BACK[2]; volatile u8 POST_HALF_BACK[2]; volatile u8 POST_OPEN_BACK[2]; volatile u16 YUYUE_TEMP_SET; volatile u16 YUYUE_TIME_SET; volatile u16 YUYUE_TIME_DIS; volatile u16 TEMP_DIRECTION; volatile u16 TEMP_DIS_MH; volatile u16 TEMP_DIS; volatile u16 TEMP_DIS_START; volatile u16 TEMP_DIS_END; volatile u16 TEMP_DIS_DATA[4]; volatile u32 TEMP_AD_DATA; volatile u16 TEMP_VALUE; volatile u16 TEMP_VALUE_ORIGINAL; volatile u16 TEMP_VALUE_HIGH; volatile u16 TEMP_VALUE_HIGH_DATA[4]; volatile u16 TEMP_POWER; volatile u32 TEMP_MANHUI_INIT; volatile u16 TEMP_VALUE_DISPLAY; volatile u16 TEMP_VALUE_SET; volatile u8 TIME_NUM; volatile u8 TIME_SEC_FLAG; volatile u32 TIME; volatile u32 TIME_DELAY_NUM; volatile u32 TIME_KF_SET; volatile u32 TIME_KF_SET_BEEP; volatile u32 TIME_MF_SET; volatile u32 TIME_MF_SET_BEEP; volatile u8 TIME_DATA_UART_NUM; volatile u8 TIME_DATA_UART_FLAG; u16 PID_PARA[10][3]; u16 EQUIPMENT_PARA[10][3]; u16 ZIXUAN_A_PARA[10][6]; u16 ZIXUAN_B_PARA[10][6]; u8 MASTER_STATUS; u8 MASTER_STATUS_NEW; u8 SLAVE_STATUS; u8 SLAVE_STATUS_NEW; u32 PROGRAM_TIME_SECOND; u8 PROGRAM_NUM; u8 PROGRAM_NUM_BACK; u8 HF_STATUS_FLAG; u8 HF_STATUS_HUIWEN_VALUE; u16 CALIBRATION[15][2]; u8 CALIBRATION_NUM; u16 CALIBRATION_TEMP[1373]; u8 ERROR; u8 MENU_CHOOSE_VALUE; u8 MENU_SET_STATUS; u8 MENU_SET_POST_X; u8 MENU_SET_POST_Y; u8 MENU_X; u8 MENU_Y; u16 MENU_SET_INPUT_DATA[16]; volatile u8 RELAY_DELAY; volatile u8 RELAY_DELAY_EN; volatile u8 MOVE_TIME_NUM; volatile u8 MOVE_TIME_SEC_FLAG; volatile u8 MOVE_TIME_OVER_FLAG; volatile u8 MOVE_TIME_OVER_FLAG_EN; volatile u16 MOVE_TIME; volatile u16 MOVE_TIME_SET; u16 USER_DATA[4]; u16 MOTER_RUN_NUM; u16 SYSTEM_DATA[12]; u16 Temp_Test_Min; u16 Temp_Test_Time_Start; u16 Temp_Test_Time_End; u16 Temp_Para_x1; u16 Temp_Para_y1; u16 Temp_Para_x2; u16 Temp_Para_y2; u16 Ad_Data_Temp[2500]; u32 adc_HeatCur_data; u32 adc_BoardTemp_data; u32 adc_Vref_data; u32 adc_Thermo_data; u32 adc_Compare_data; u32 ads1220_ch12_init_data; u32 ads1220_ch23_init_data; u8 board_temp_init_data; u8 ads1220_bipolar_flag; u8 temp_bipolar_flag; s32 adc_vol_data; s32 mcu_adc_vol_data; s32 board_vol_data; s32 system_vol_data; u8 menu_select_post; u16 FANJIE_DELAY_NUM; u32 temp_dis_more_flag; u32 ads1220_original_data; volatile u16 TEMP_DIS_CALC; u16 Heat_work_time[1024]; s16 temp_drop_buf[1024]; u16 temp_drop_buf_num; u32 temp_drop_run_cycle; u32 temp_drop_new_flag; u32 temp_drop_enable; u32 temp_drop_high_temp; u32 temp_drop_cont_time; u32 temp_drop_draft_temp; volatile u16 Temp_Table[1373]; volatile u32 Redianou_Type; volatile u32 Redianou_Check_En_Counter; volatile u32 ZIXUAN_DEBUG_TEMP_EN; } MFL_PARA; #line 581 "..\\src\\main.h" typedef struct { volatile u8 UART_RXD_NUM_LAST; volatile u8 UART_RXD_NUM_NOW; volatile u8 UART_RXD_FINISH; volatile u8 UART_RXD_EN; volatile u16 UART_RXD_BEGIN_POST; volatile u16 UART_RXD_END_POST; volatile u16 UART_RXD_LENTH; volatile u16 UART_TXD_SEND_NUM; u8 UART_DMA_RXD_BUF[256]; u8 UART_DMA_RXD_BUF_TEMP[256]; u8 UART_DMA_TXD_BUF[256]; u8 UART_RXD_MODE_FLAG; u8 UART_RXD_MODE_VALUE; u32 UART_RXD_COST_VALUE; u32 UART_RXD_CPUID_VALUE; } UART_PARA; #line 4 "..\\src\\main.c" #line 1 "..\\src\\hal.h" extern void ChipHalInit(void); extern void ChipOutHalInit(void); #line 5 "..\\src\\main.c" #line 1 "..\\src\\lcd_st7920.h" void lcd_init (void); void lcd_write (u8 lcd_style, u8 a); void lcd_display (u16 c); void lcd_display_string (u8 x, u8 y, u8 *p); void lcd_post (u8 x, u8 y); void delay_ms (u16 ms_num); void LCD_DELAY_NOP (void); void lcd_text_mode (void); void lcd_picture_mode (void); void lcd_picture_on (void); void lcd_picture_off (void); void lcd_display_black (u8 y, u8 x, u8 length, u8 style); void lcd_display_black_one (u8 y, u8 x, u8 style); void lcd_display_temp_space (void); void lcd_display_time_space (void); #line 6 "..\\src\\main.c" #line 1 "..\\src\\ADS1220.h" #line 5 "..\\src\\ADS1220.h" #line 6 "..\\src\\ADS1220.h" #line 18 "..\\src\\ADS1220.h" u8 ads1220_SendByte(u8 byte); void ads1220_Initialization(void); u32 ads1220_read_data (void); #line 7 "..\\src\\main.c" #line 1 "..\\src\\menu.h" void menu_display_clean (void); void menu_display_welcome (void); void menu_display_function (void); void menu_display_program (void); void menu_display_message (void); void menu_display_manhui (void); void menu_display_kuaihui (void); void menu_display_kuaihuib (void); void menu_display_huifa (void); void menu_display_zixuan_a (void); void menu_display_zixuan_b (void); void menu_display_calibration (void); void menu_display_program_a_user (void); void menu_display_program_b_user (void); void menu_display_program_parameter (void); void menu_display_program_pid (void); void menu_display_program_user (void); void menu_display_program_system (void); void menu_display_program_password (void); void menu_display_program_save (void); void menu_display_debug (void); void menu_display_reset (void); void menu_display_reservation (void); u8 pcf8563_read_time (u8 addr, u8 num, u8 *p); u8 pcf8563_write_time (u8 addr, u8 num, u8 *p); u8 eeprom_24c64_write (u16 addr, u8 num, u8 *p); u8 eeprom_24c64_read (u16 addr, u8 num, u8 *p); void iic1_start (void); void iic1_stop (void); u8 iic1_write_byte (u8 data); u8 iic1_read_byte (u8 ack); u8 eeprom_24c64_read_byte (u16 addr); u8 eeprom_24c64_write_byte (u16 addr, u8 data); #line 8 "..\\src\\main.c" #line 1 "..\\src\\FUZZY.h" #line 4 "..\\src\\FUZZY.h" #line 26 "..\\src\\FUZZY.h" void InitFuzzy(void); void TaskFuzzy(void); void CtrlStove(u8 cOpen, long lDefTemp, u8 cRate); typedef struct { u16 iStableCnt; u16 iDestTemp; u32 integral; } StableTempTab; typedef struct { char cOpen; long gDest; long CTEMP; long lRate; long Error[9]; long dErr[10] ; long ECSUM; long SumErrLimit ; long PreviewOut; long HFDownTemp ; long du; unsigned int temp_out; unsigned int PID_SET; long DoorOpenValue; char LowSpeedCnt; unsigned int cur_Temp; unsigned int iDestTemp; unsigned int iStableCnt; unsigned int iPreStabCnt; unsigned int TIME_NUM; unsigned int TIME_FLAG; unsigned int PWM_TIME_NUM; unsigned int PWM_TIME_FLAG; unsigned int PID_SET_ALL; unsigned int PID_SET_FLAG; unsigned int PID_TEST_STATUS; unsigned int PWM_STATUS; unsigned int PWM_STATUS_FLAG; } AI_CONTROL; void SaveStable(StableTempTab *psTmpTab); void LoadStable(u16 iTemp, StableTempTab *psTmpTab); void saveHFDownTemp (u8 temp); u8 readHFDownTemp (void); #line 9 "..\\src\\main.c" #line 1 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdio.h" #line 47 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdio.h" typedef unsigned int size_t; typedef struct __va_list __va_list; typedef struct __fpos_t_struct { unsigned __int64 __pos; struct { unsigned int __state1, __state2; } __mbstate; } fpos_t; typedef struct __FILE FILE; #line 136 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdio.h" extern FILE __stdin, __stdout, __stderr; extern FILE *__aeabi_stdin, *__aeabi_stdout, *__aeabi_stderr; #line 166 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdio.h" extern __declspec(__nothrow) int remove(const char * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int rename(const char * , const char * ) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) FILE *tmpfile(void); extern __declspec(__nothrow) char *tmpnam(char * ); extern __declspec(__nothrow) int fclose(FILE * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int fflush(FILE * ); extern __declspec(__nothrow) FILE *fopen(const char * __restrict , const char * __restrict ) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) FILE *freopen(const char * __restrict , const char * __restrict , FILE * __restrict ) __attribute__((__nonnull__(2,3))); extern __declspec(__nothrow) void setbuf(FILE * __restrict , char * __restrict ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int setvbuf(FILE * __restrict , char * __restrict , int , size_t ) __attribute__((__nonnull__(1))); #pragma __printf_args extern __declspec(__nothrow) int fprintf(FILE * __restrict , const char * __restrict , ...) __attribute__((__nonnull__(1,2))); #pragma __printf_args extern __declspec(__nothrow) int _fprintf(FILE * __restrict , const char * __restrict , ...) __attribute__((__nonnull__(1,2))); #pragma __printf_args extern __declspec(__nothrow) int printf(const char * __restrict , ...) __attribute__((__nonnull__(1))); #pragma __printf_args extern __declspec(__nothrow) int _printf(const char * __restrict , ...) __attribute__((__nonnull__(1))); #pragma __printf_args extern __declspec(__nothrow) int sprintf(char * __restrict , const char * __restrict , ...) __attribute__((__nonnull__(1,2))); #pragma __printf_args extern __declspec(__nothrow) int _sprintf(char * __restrict , const char * __restrict , ...) __attribute__((__nonnull__(1,2))); #pragma __printf_args extern __declspec(__nothrow) int __ARM_snprintf(char * __restrict , size_t , const char * __restrict , ...) __attribute__((__nonnull__(3))); #pragma __printf_args extern __declspec(__nothrow) int snprintf(char * __restrict , size_t , const char * __restrict , ...) __attribute__((__nonnull__(3))); #pragma __printf_args extern __declspec(__nothrow) int _snprintf(char * __restrict , size_t , const char * __restrict , ...) __attribute__((__nonnull__(3))); #pragma __scanf_args extern __declspec(__nothrow) int fscanf(FILE * __restrict , const char * __restrict , ...) __attribute__((__nonnull__(1,2))); #pragma __scanf_args extern __declspec(__nothrow) int _fscanf(FILE * __restrict , const char * __restrict , ...) __attribute__((__nonnull__(1,2))); #pragma __scanf_args extern __declspec(__nothrow) int scanf(const char * __restrict , ...) __attribute__((__nonnull__(1))); #pragma __scanf_args extern __declspec(__nothrow) int _scanf(const char * __restrict , ...) __attribute__((__nonnull__(1))); #pragma __scanf_args extern __declspec(__nothrow) int sscanf(const char * __restrict , const char * __restrict , ...) __attribute__((__nonnull__(1,2))); #pragma __scanf_args extern __declspec(__nothrow) int _sscanf(const char * __restrict , const char * __restrict , ...) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int vfscanf(FILE * __restrict , const char * __restrict , __va_list) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int vscanf(const char * __restrict , __va_list) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int vsscanf(const char * __restrict , const char * __restrict , __va_list) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int _vfscanf(FILE * __restrict , const char * __restrict , __va_list) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int _vscanf(const char * __restrict , __va_list) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int _vsscanf(const char * __restrict , const char * __restrict , __va_list) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int __ARM_vsscanf(const char * __restrict , const char * __restrict , __va_list) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int vprintf(const char * __restrict , __va_list ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int _vprintf(const char * __restrict , __va_list ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int vfprintf(FILE * __restrict , const char * __restrict , __va_list ) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int vsprintf(char * __restrict , const char * __restrict , __va_list ) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int __ARM_vsnprintf(char * __restrict , size_t , const char * __restrict , __va_list ) __attribute__((__nonnull__(3))); extern __declspec(__nothrow) int vsnprintf(char * __restrict , size_t , const char * __restrict , __va_list ) __attribute__((__nonnull__(3))); extern __declspec(__nothrow) int _vsprintf(char * __restrict , const char * __restrict , __va_list ) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int _vfprintf(FILE * __restrict , const char * __restrict , __va_list ) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int _vsnprintf(char * __restrict , size_t , const char * __restrict , __va_list ) __attribute__((__nonnull__(3))); #pragma __printf_args extern __declspec(__nothrow) int asprintf(char ** , const char * __restrict , ...) __attribute__((__nonnull__(2))); extern __declspec(__nothrow) int vasprintf(char ** , const char * __restrict , __va_list ) __attribute__((__nonnull__(2))); #pragma __printf_args extern __declspec(__nothrow) int __ARM_asprintf(char ** , const char * __restrict , ...) __attribute__((__nonnull__(2))); extern __declspec(__nothrow) int __ARM_vasprintf(char ** , const char * __restrict , __va_list ) __attribute__((__nonnull__(2))); extern __declspec(__nothrow) int fgetc(FILE * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) char *fgets(char * __restrict , int , FILE * __restrict ) __attribute__((__nonnull__(1,3))); extern __declspec(__nothrow) int fputc(int , FILE * ) __attribute__((__nonnull__(2))); extern __declspec(__nothrow) int fputs(const char * __restrict , FILE * __restrict ) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int getc(FILE * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int (getchar)(void); extern __declspec(__nothrow) char *gets(char * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int putc(int , FILE * ) __attribute__((__nonnull__(2))); extern __declspec(__nothrow) int (putchar)(int ); extern __declspec(__nothrow) int puts(const char * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int ungetc(int , FILE * ) __attribute__((__nonnull__(2))); extern __declspec(__nothrow) size_t fread(void * __restrict , size_t , size_t , FILE * __restrict ) __attribute__((__nonnull__(1,4))); extern __declspec(__nothrow) size_t __fread_bytes_avail(void * __restrict , size_t , FILE * __restrict ) __attribute__((__nonnull__(1,3))); extern __declspec(__nothrow) size_t fwrite(const void * __restrict , size_t , size_t , FILE * __restrict ) __attribute__((__nonnull__(1,4))); extern __declspec(__nothrow) int fgetpos(FILE * __restrict , fpos_t * __restrict ) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) int fseek(FILE * , long int , int ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int fsetpos(FILE * __restrict , const fpos_t * __restrict ) __attribute__((__nonnull__(1,2))); extern __declspec(__nothrow) long int ftell(FILE * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) void rewind(FILE * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) void clearerr(FILE * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int feof(FILE * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) int ferror(FILE * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) void perror(const char * ); extern __declspec(__nothrow) int _fisatty(FILE * ) __attribute__((__nonnull__(1))); extern __declspec(__nothrow) void __use_no_semihosting_swi(void); extern __declspec(__nothrow) void __use_no_semihosting(void); #line 1021 "d:\\Keil\\ARM\\ARM_Compiler_5.06u7\\Bin\\..\\include\\stdio.h" #line 10 "..\\src\\main.c" #line 1 "..\\src\\temperature_table.h" #line 2 "..\\src\\temperature_table.h" const u16 s_table[1373] = { 0, 5, 11, 16, 22, 27, 33, 38, 44, 50, 55, 61, 67, 72, 78, 84, 90, 95, 101, 107, 113, 119, 125, 131, 137, 143, 149, 155, 161, 167, 173, 179, 185, 191, 197, 204, 210, 216, 222, 229, 235, 241, 248, 254, 260, 267, 273, 280, 286, 292, 299, 305, 312, 319, 325, 332, 338, 345, 352, 358, 365, 372, 378, 385, 392, 399, 405, 412, 419, 426, 433, 440, 446, 453, 460, 467, 474, 481, 488, 495, 502, 509, 516, 523, 530, 538, 545, 552, 559, 566, 573, 580, 588, 595, 602, 609, 617, 624, 631, 639, 646, 653, 661, 668, 675, 683, 690, 698, 705, 713, 720, 727, 735, 743, 750, 758, 765, 773, 780, 788, 795, 803, 811, 818, 826, 834, 841, 849, 857, 865, 872, 880, 888, 896, 903, 911, 919, 927, 935, 942, 950, 958, 966, 974, 982, 990, 998, 1006, 1013, 1021, 1029, 1037, 1045, 1053, 1061, 1069, 1077, 1085, 1094, 1102, 1110, 1118, 1126, 1134, 1142, 1150, 1158, 1167, 1175, 1183, 1191, 1199, 1207, 1216, 1224, 1232, 1240, 1249, 1257, 1265, 1273, 1282, 1290, 1298, 1307, 1315, 1323, 1332, 1340, 1348, 1357, 1365, 1373, 1382, 1390, 1399, 1407, 1415, 1424, 1432, 1441, 1449, 1458, 1466, 1475, 1483, 1492, 1500, 1509, 1517, 1526, 1534, 1543, 1551, 1560, 1569, 1577, 1586, 1594, 1603, 1612, 1620, 1629, 1638, 1646, 1655, 1663, 1672, 1681, 1690, 1698, 1707, 1716, 1724, 1733, 1742, 1751, 1759, 1768, 1777, 1786, 1794, 1803, 1812, 1821, 1829, 1838, 1847, 1856, 1865, 1874, 1882, 1891, 1900, 1909, 1918, 1927, 1936, 1944, 1953, 1962, 1971, 1980, 1989, 1998, 2007, 2016, 2025, 2034, 2043, 2052, 2061, 2070, 2078, 2087, 2096, 2105, 2114, 2123, 2132, 2141, 2151, 2160, 2169, 2178, 2187, 2196, 2205, 2214, 2223, 2232, 2241, 2250, 2259, 2268, 2277, 2287, 2296, 2305, 2314, 2323, 2332, 2341, 2350, 2360, 2369, 2378, 2387, 2396, 2405, 2415, 2424, 2433, 2442, 2451, 2461, 2470, 2479, 2488, 2497, 2507, 2516, 2525, 2534, 2544, 2553, 2562, 2571, 2581, 2590, 2599, 2609, 2618, 2627, 2636, 2646, 2655, 2664, 2674, 2683, 2692, 2702, 2711, 2720, 2730, 2739, 2748, 2758, 2767, 2776, 2786, 2795, 2805, 2814, 2823, 2833, 2842, 2851, 2861, 2870, 2880, 2889, 2899, 2908, 2917, 2927, 2936, 2946, 2955, 2965, 2974, 2983, 2993, 3002, 3012, 3021, 3031, 3040, 3050, 3059, 3069, 3078, 3088, 3097, 3107, 3116, 3126, 3135, 3145, 3154, 3164, 3173, 3183, 3192, 3202, 3212, 3221, 3231, 3240, 3250, 3259, 3269, 3279, 3288, 3298, 3307, 3317, 3326, 3336, 3346, 3355, 3365, 3374, 3384, 3394, 3403, 3413, 3423, 3432, 3442, 3451, 3461, 3471, 3480, 3490, 3500, 3509, 3519, 3529, 3538, 3548, 3558, 3567, 3577, 3587, 3596, 3606, 3616, 3626, 3635, 3645, 3655, 3664, 3674, 3684, 3694, 3703, 3713, 3723, 3732, 3742, 3752, 3762, 3771, 3781, 3791, 3801, 3810, 3820, 3830, 3840, 3850, 3859, 3869, 3879, 3889, 3898, 3908, 3918, 3928, 3938, 3947, 3957, 3967, 3977, 3987, 3997, 4006, 4016, 4026, 4036, 4046, 4056, 4065, 4075, 4085, 4095, 4105, 4115, 4125, 4134, 4144, 4154, 4164, 4174, 4184, 4194, 4204, 4213, 4223, 4233, 4243, 4253, 4263, 4273, 4283, 4293, 4303, 4313, 4323, 4332, 4342, 4352, 4362, 4372, 4382, 4392, 4402, 4412, 4422, 4432, 4442, 4452, 4462, 4472, 4482, 4492, 4502, 4512, 4522, 4532, 4542, 4552, 4562, 4572, 4582, 4592, 4602, 4612, 4622, 4632, 4642, 4652, 4662, 4672, 4682, 4692, 4702, 4712, 4722, 4732, 4742, 4752, 4762, 4772, 4782, 4793, 4803, 4813, 4823, 4833, 4843, 4853, 4863, 4873, 4883, 4893, 4904, 4914, 4924, 4934, 4944, 4954, 4964, 4974, 4984, 4995, 5005, 5015, 5025, 5035, 5045, 5055, 5066, 5076, 5086, 5096, 5106, 5116, 5127, 5137, 5147, 5157, 5167, 5178, 5188, 5198, 5208, 5218, 5228, 5239, 5249, 5259, 5269, 5280, 5290, 5300, 5310, 5320, 5331, 5341, 5351, 5361, 5372, 5382, 5392, 5402, 5413, 5423, 5433, 5443, 5454, 5464, 5474, 5485, 5495, 5505, 5515, 5526, 5536, 5546, 5557, 5567, 5577, 5588, 5598, 5608, 5618, 5629, 5639, 5649, 5660, 5670, 5680, 5691, 5701, 5712, 5722, 5732, 5743, 5753, 5763, 5774, 5784, 5794, 5805, 5815, 5826, 5836, 5846, 5857, 5867, 5878, 5888, 5898, 5909, 5919, 5930, 5940, 5950, 5961, 5971, 5982, 5992, 6003, 6013, 6024, 6034, 6044, 6055, 6065, 6076, 6086, 6097, 6107, 6118, 6128, 6139, 6149, 6160, 6170, 6181, 6191, 6202, 6212, 6223, 6233, 6244, 6254, 6265, 6275, 6286, 6296, 6307, 6317, 6328, 6338, 6349, 6360, 6370, 6381, 6391, 6402, 6412, 6423, 6434, 6444, 6455, 6465, 6476, 6486, 6497, 6508, 6518, 6529, 6539, 6550, 6561, 6571, 6582, 6593, 6603, 6614, 6624, 6635, 6646, 6656, 6667, 6678, 6688, 6699, 6710, 6720, 6731, 6742, 6752, 6763, 6774, 6784, 6795, 6806, 6817, 6827, 6838, 6849, 6859, 6870, 6881, 6892, 6902, 6913, 6924, 6934, 6945, 6956, 6967, 6977, 6988, 6999, 7010, 7020, 7031, 7042, 7053, 7064, 7074, 7085, 7096, 7107, 7117, 7128, 7139, 7150, 7161, 7172, 7182, 7193, 7204, 7215, 7226, 7236, 7247, 7258, 7269, 7280, 7291, 7302, 7312, 7323, 7334, 7345, 7356, 7367, 7378, 7388, 7399, 7410, 7421, 7432, 7443, 7454, 7465, 7476, 7487, 7497, 7508, 7519, 7530, 7541, 7552, 7563, 7574, 7585, 7596, 7607, 7618, 7629, 7640, 7651, 7662, 7673, 7684, 7695, 7706, 7717, 7728, 7739, 7750, 7761, 7772, 7783, 7794, 7805, 7816, 7827, 7838, 7849, 7860, 7871, 7882, 7893, 7904, 7915, 7926, 7937, 7948, 7959, 7970, 7981, 7992, 8003, 8014, 8026, 8037, 8048, 8059, 8070, 8081, 8092, 8103, 8114, 8125, 8137, 8148, 8159, 8170, 8181, 8192, 8203, 8214, 8226, 8237, 8248, 8259, 8270, 8281, 8293, 8304, 8315, 8326, 8337, 8348, 8360, 8371, 8382, 8393, 8404, 8416, 8427, 8438, 8449, 8460, 8472, 8483, 8494, 8505, 8517, 8528, 8539, 8550, 8562, 8573, 8584, 8595, 8607, 8618, 8629, 8640, 8652, 8663, 8674, 8685, 8697, 8708, 8719, 8731, 8742, 8753, 8765, 8776, 8787, 8798, 8810, 8821, 8832, 8844, 8855, 8866, 8878, 8889, 8900, 8912, 8923, 8935, 8946, 8957, 8969, 8980, 8991, 9003, 9014, 9025, 9037, 9048, 9060, 9071, 9082, 9094, 9105, 9117, 9128, 9139, 9151, 9162, 9174, 9185, 9197, 9208, 9219, 9231, 9242, 9254, 9265, 9277, 9288, 9300, 9311, 9323, 9334, 9345, 9357, 9368, 9380, 9391, 9403, 9414, 9426, 9437, 9449, 9460, 9472, 9483, 9495, 9506, 9518, 9529, 9541, 9552, 9564, 9576, 9587, 9599, 9610, 9622, 9633, 9645, 9656, 9668, 9680, 9691, 9703, 9714, 9726, 9737, 9749, 9761, 9772, 9784, 9795, 9807, 9819, 9830, 9842, 9853, 9865, 9877, 9888, 9900, 9911, 9923, 9935, 9946, 9958, 9970, 9981, 9993, 10005, 10016, 10028, 10040, 10051, 10063, 10075, 10086, 10098, 10110, 10121, 10133, 10145, 10156, 10168, 10180, 10191, 10203, 10215, 10227, 10238, 10250, 10262, 10273, 10285, 10297, 10309, 10320, 10332, 10344, 10356, 10367, 10379, 10391, 10403, 10414, 10426, 10438, 10450, 10461, 10473, 10485, 10497, 10509, 10520, 10532, 10544, 10556, 10567, 10579, 10591, 10603, 10615, 10626, 10638, 10650, 10662, 10674, 10686, 10697, 10709, 10721, 10733, 10745, 10757, 10768, 10780, 10792, 10804, 10816, 10828, 10839, 10851, 10863, 10875, 10887, 10899, 10911, 10922, 10934, 10946, 10958, 10970, 10982, 10994, 11006, 11017, 11029, 11041, 11053, 11065, 11077, 11089, 11101, 11113, 11125, 11136, 11148, 11160, 11172, 11184, 11196, 11208, 11220, 11232, 11244, 11256, 11268, 11280, 11291, 11303, 11315, 11327, 11339, 11351, 11363, 11375, 11387, 11399, 11411, 11423, 11435, 11447, 11459, 11471, 11483, 11495, 11507, 11519, 11531, 11542, 11554, 11566, 11578, 11590, 11602, 11614, 11626, 11638, 11650, 11662, 11674, 11686, 11698, 11710, 11722, 11734, 11746, 11758, 11770, 11782, 11794, 11806, 11818, 11830, 11842, 11854, 11866, 11878, 11890, 11902, 11914, 11926, 11939, 11951, 11963, 11975, 11987, 11999, 12011, 12023, 12035, 12047, 12059, 12071, 12083, 12095, 12107, 12119, 12131, 12143, 12155, 12167, 12179, 12191, 12203, 12216, 12228, 12240, 12252, 12264, 12276, 12288, 12300, 12312, 12324, 12336, 12348, 12360, 12372, 12384, 12397, 12409, 12421, 12433, 12445, 12457, 12469, 12481, 12493, 12505, 12517, 12529, 12542, 12554, 12566, 12578, 12590, 12602, 12614, 12626, 12638, 12650, 12662, 12675, 12687, 12699, 12711, 12723, 12735, 12747, 12759, 12771, 12783, 12796, 12808, 12820, 12832, 12844, 12856, 12868, 12880, 12892, 12905, 12917, 12929, 12941, 12953, 12965, 12977, 12989, 13001, 13014, 13026, 13038, 13050, 13062, 13074, 13086, 13098, 13111, 13123, 13135, 13147, 13159, 13171, 13183, 13195, 13208, 13220, 13232, 13244, 13256, 13268, 13280, 13292, 13305, 13317, 13329, 13341, 13353, 13365, 13377, 13390, 13402, 13414, 13426, 13438, 13450, 13462, 13474, 13487, 13499, 13511, 13523, 13535, 13547, 13559, 13572, 13584, 13596, 13608, 13620, 13632, 13644, 13657, 13669, 13681, 13693, 13705, 13717, 13729, 13742, 13754, 13766, 13778, 13790, 13802, 13814, 13826, 13839, 13851, 13863, 13875, 13887, 13899, 13911, 13924, 13936, 13948, 13960, 13972, 13984, 13996, 14009, 14021, 14033 }; const u16 k_table[1373] = { 0, 39, 79, 119, 158, 198, 238, 277, 317, 357, 397, 437, 477, 517, 557, 597, 637, 677, 718, 758, 798, 838, 879, 919, 960, 1000, 1041, 1081, 1122, 1163, 1203, 1244, 1285, 1326, 1366, 1407, 1448, 1489, 1530, 1571, 1612, 1653, 1694, 1735, 1776, 1817, 1858, 1899, 1941, 1982, 2023, 2064, 2106, 2147, 2188, 2230, 2271, 2312, 2354, 2395, 2436, 2478, 2519, 2561, 2602, 2644, 2685, 2727, 2768, 2810, 2851, 2893, 2934, 2976, 3017, 3059, 3100, 3142, 3184, 3225, 3267, 3308, 3350, 3391, 3433, 3474, 3516, 3557, 3599, 3640, 3682, 3723, 3765, 3806, 3848, 3889, 3931, 3972, 4013, 4055, 4096, 4138, 4179, 4220, 4262, 4303, 4344, 4385, 4427, 4468, 4509, 4550, 4591, 4633, 4674, 4715, 4756, 4797, 4838, 4879, 4920, 4961, 5002, 5043, 5084, 5124, 5156, 5206, 5247, 5288, 5328, 5369, 5410, 5450, 5491, 5532, 5572, 5613, 5653, 5694, 5735, 5775, 5815, 5856, 5896, 5937, 5977, 6017, 6058, 6098, 6138, 6179, 6219, 6259, 6299, 6339, 6380, 6420, 6460, 6500, 6540, 6580, 6620, 6660, 6701, 6741, 6781, 6821, 6861, 6901, 6941, 6981, 7021, 7060, 7100, 7140, 7180, 7220, 7260, 7300, 7340, 7380, 7420, 7460, 7500, 7540, 7579, 7619, 7659, 7699, 7739, 7779, 7819, 7859, 7899, 7939, 7979, 8019, 8059, 8099, 8138, 8178, 8218, 8258, 8298, 8338, 8378, 8418, 8458, 8499, 8539, 8579, 8619, 8659, 8699, 8739, 8779, 8819, 8860, 8900, 8940, 8980, 9020, 9061, 9101, 9141, 9181, 9222, 9262, 9302, 9343, 9383, 9423, 9464, 9504, 9545, 9585, 9626, 9666, 9707, 9747, 9788, 9828, 9869, 9909, 9950, 9991, 10031, 10072, 10113, 10153, 10194, 10235, 10276, 10316, 10357, 10398, 10439, 10480, 10520, 10561, 10602, 10643, 10684, 10725, 10766, 10807, 10848, 10889, 10930, 10971, 11012, 11053, 11094, 11135, 11176, 11217, 11259, 11300, 11341, 11382, 11423, 11465, 11506, 11547, 11588, 11630, 11671, 11712, 11753, 11795, 11836, 11877, 11919, 11960, 12001, 12043, 12084, 12126, 12167, 12209, 12250, 12291, 12333, 12374, 12416, 12457, 12499, 12540, 12582, 12624, 12665, 12707, 12748, 12790, 12831, 12873, 12915, 12956, 12998, 13040, 13081, 13123, 13165, 13206, 13248, 13290, 13331, 13373, 13415, 13457, 13498, 13540, 13582, 13624, 13665, 13707, 13749, 13791, 13833, 13874, 13916, 13958, 14000, 14042, 14084, 14126, 14167, 14209, 14251, 14293, 14335, 14377, 14419, 14461, 14503, 14545, 14587, 14629, 14671, 14713, 14755, 14797, 14839, 14881, 14923, 14965, 15007, 15049, 15091, 15133, 15175, 15217, 15259, 15301, 15343, 15385, 15427, 15469, 15511, 15554, 15596, 15638, 15680, 15722, 15764, 15806, 15849, 15891, 15933, 15975, 16017, 16059, 16102, 16144, 16186, 16228, 16270, 16313, 16355, 16397, 16439, 16482, 16524, 16566, 16608, 16651, 16693, 16735, 16778, 16820, 16862, 16904, 16947, 16989, 17031, 17074, 17116, 17158, 17201, 17243, 17285, 17328, 17370, 17413, 17455, 17497, 17540, 17582, 17624, 17667, 17709, 17752, 17794, 17837, 17879, 17921, 17964, 18006, 18049, 18091, 18134, 18176, 18218, 18261, 18303, 18346, 18388, 18431, 18473, 18516, 18558, 18601, 18643, 18686, 18728, 18771, 18813, 18856, 18898, 18941, 18983, 19026, 19068, 19111, 19154, 19196, 19239, 19281, 19324, 19366, 19409, 19451, 19494, 19537, 19579, 19622, 19664, 19707, 19750, 19792, 19835, 19877, 19920, 19962, 20005, 20048, 20090, 20133, 20175, 20218, 20261, 20303, 20346, 20389, 20431, 20474, 20516, 20559, 20602, 20644, 20687, 20730, 20772, 20815, 20857, 20900, 20943, 20985, 21028, 21071, 21113, 21156, 21199, 21241, 21284, 21326, 21369, 21412, 21454, 21497, 21540, 21582, 21625, 21668, 21710, 21753, 21796, 21838, 21881, 21924, 21966, 22009, 22052, 22094, 22137, 22179, 22222, 22265, 22307, 22350, 22393, 22435, 22478, 22521, 22563, 22606, 22649, 22691, 22734, 22776, 22819, 22862, 22904, 22947, 22990, 23032, 23075, 23117, 23160, 23203, 23245, 23288, 23331, 23373, 23416, 23458, 23501, 23544, 23586, 23629, 23671, 23714, 23757, 23799, 23842, 23884, 23927, 23970, 24012, 24055, 24097, 24140, 24182, 24225, 24267, 24310, 24353, 24395, 24438, 24480, 24523, 24565, 24608, 24650, 24693, 24735, 24778, 24820, 24863, 24905, 24948, 24990, 25033, 25075, 25118, 25160, 25203, 25245, 25288, 25330, 25373, 25415, 25458, 25500, 25543, 25585, 25627, 25670, 25712, 25755, 25797, 25840, 25882, 25924, 25967, 26009, 26052, 26094, 26136, 26179, 26221, 26263, 26306, 26348, 26390, 26433, 26475, 26517, 26560, 26602, 26644, 26687, 26729, 26771, 26814, 26856, 26898, 26940, 26983, 27025, 27067, 27109, 27152, 27194, 27236, 27278, 27320, 27363, 27405, 27447, 27489, 27531, 27574, 27616, 27658, 27700, 27742, 27784, 27826, 27869, 27911, 27953, 27995, 28037, 28079, 28121, 28163, 28205, 28247, 28289, 28332, 28374, 28416, 28458, 28500, 28542, 28584, 28626, 28668, 28710, 28752, 28794, 28835, 28877, 28919, 28961, 29003, 29045, 29087, 29129, 29171, 29213, 29255, 29297, 29338, 29380, 29422, 29464, 29506, 29548, 29589, 29631, 29673, 29715, 29757, 29798, 29840, 29882, 29924, 29965, 30007, 30049, 30090, 30132, 30174, 30216, 30257, 30299, 30341, 30382, 30424, 30466, 30507, 30549, 30590, 30632, 30674, 30715, 30757, 30798, 30840, 30881, 30923, 30964, 31006, 31047, 31089, 31130, 31172, 31213, 31255, 31296, 31338, 31379, 31421, 31462, 31504, 31545, 31586, 31628, 31669, 31710, 31752, 31793, 31834, 31876, 31917, 31958, 32000, 32041, 32082, 32124, 32165, 32206, 32247, 32289, 32330, 32371, 32412, 32453, 32495, 32536, 32577, 32618, 32659, 32700, 32742, 32783, 32824, 32865, 32906, 32947, 32988, 33029, 33070, 33111, 33152, 33193, 33234, 33275, 33316, 33357, 33398, 33439, 33480, 33521, 33562, 33603, 33644, 33685, 33726, 33767, 33808, 33848, 33889, 33930, 33971, 34012, 34053, 34093, 34134, 34175, 34216, 34257, 34297, 34338, 34379, 34420, 34460, 34501, 34542, 34582, 34623, 34664, 34704, 34745, 34786, 34826, 34867, 34908, 34948, 34989, 35029, 35070, 35110, 35151, 35192, 35232, 35273, 35313, 35354, 35394, 35435, 35475, 35516, 35556, 35596, 35637, 35677, 35718, 35758, 35798, 35839, 35879, 35920, 35960, 36000, 36041, 36081, 36121, 36162, 36202, 36242, 36282, 36323, 36363, 36403, 36443, 36484, 36524, 36564, 36604, 36644, 36685, 36725, 36765, 36805, 36845, 36885, 36925, 36965, 37006, 37046, 37086, 37126, 37166, 37206, 37246, 37286, 37326, 37366, 37406, 37446, 37486, 37526, 37566, 37606, 37646, 37686, 37725, 37765, 37805, 37845, 37885, 37925, 37965, 38005, 38044, 38084, 38124, 38164, 38204, 38243, 38283, 38323, 38363, 38402, 38442, 38482, 38522, 38561, 38601, 38641, 38680, 38720, 38760, 38799, 38839, 38878, 38918, 38958, 38997, 39037, 39076, 39116, 39155, 39195, 39235, 39274, 39314, 39353, 39393, 39432, 39471, 39511, 39550, 39590, 39629, 39669, 39708, 39747, 39787, 39826, 39866, 39905, 39944, 39984, 40023, 40062, 40101, 40141, 40180, 40219, 40259, 40298, 40337, 40376, 40415, 40455, 40494, 40533, 40572, 40611, 40651, 40690, 40729, 40768, 40807, 40846, 40885, 40924, 40963, 41002, 41042, 41084, 41120, 41159, 41198, 41237, 41276, 41315, 41354, 41393, 41431, 41470, 41509, 41548, 41587, 41626, 41665, 41704, 41743, 41781, 41820, 41859, 41898, 41937, 41976, 42014, 42053, 42092, 42131, 42169, 42208, 42247, 42286, 42324, 42363, 42402, 42440, 42479, 42518, 42556, 42595, 42633, 42672, 42711, 42749, 42788, 42826, 42865, 42903, 42942, 42980, 43019, 43057, 43096, 43134, 43173, 43211, 43250, 43288, 43327, 43365, 43403, 43442, 43480, 43518, 43557, 43595, 43633, 43672, 43710, 43748, 43787, 43825, 43863, 43901, 43940, 43978, 44016, 44054, 44092, 44130, 44169, 44207, 44245, 44283, 44321, 44359, 44397, 44435, 44473, 44512, 44550, 44588, 44626, 44664, 44702, 44740, 44778, 44816, 44853, 44891, 44929, 44967, 45005, 44043, 44081, 45119, 45157, 45194, 45232, 45270, 45308, 45346, 45383, 45421, 45459, 45497, 45534, 45572, 45610, 45647, 45685, 45723, 45760, 45798, 45836, 45873, 45911, 45948, 45986, 46024, 46061, 46099, 46136, 46174, 46211, 46249, 46286, 46324, 46361, 46398, 46436, 46473, 46511, 46548, 46585, 46623, 46660, 46697, 46735, 46772, 46809, 46847, 46884, 46921, 46958, 46995, 47033, 47070, 47107, 47144, 47181, 47218, 47256, 47293, 47330, 47367, 47404, 47441, 47478, 47515, 47552, 47589, 47626, 47663, 47700, 47737, 47774, 47811, 47848, 47884, 47921, 47958, 47995, 48032, 48069, 48105, 48142, 48179, 48216, 48252, 48289, 48326, 48363, 48399, 48436, 48473, 48509, 48546, 48582, 48619, 48656, 48692, 48729, 48765, 48802, 48838, 48875, 48911, 48948, 48984, 49021, 49057, 49093, 49130, 49166, 49202, 49239, 49275, 49311, 49348, 49384, 49420, 49456, 49493, 49529, 49565, 49601, 49637, 49674, 49710, 49746, 49782, 49818, 49854, 49890, 49926, 49962, 49998, 50034, 50070, 50106, 50142, 50178, 50214, 50250, 50286, 50322, 50358, 50393, 50429, 50465, 50501, 50537, 50572, 50608, 50644, 50680, 50715, 50751, 50787, 50822, 50858, 50894, 50929, 50965, 51000, 51036, 51071, 51107, 51142, 51178, 51213, 51249, 51284, 51320, 51355, 51391, 51426, 51461, 51497, 51532, 51567, 51603, 51638, 51673, 51708, 51744, 51779, 51814, 51849, 51885, 51920, 51955, 51990, 52025, 52060, 52095, 52130, 52165, 52200, 52235, 52270, 52305, 52340, 52375, 52410, 52445, 52480, 52515, 52550, 52585, 52620, 52654, 52689, 52724, 52759, 52794, 52828, 52863, 52898, 52932, 52967, 53002, 53037, 53071, 53106, 53140, 53175, 53210, 53244, 53279, 53313, 53348, 53382, 53417, 53451, 53486, 53520, 53555, 53589, 53623, 53658, 53692, 53727, 53761, 53795, 53830, 53864, 53898, 53932, 53967, 54001, 54035, 54069, 54104, 54138, 54172, 54206, 54240, 54274, 54308, 54343, 54377, 54411, 54445, 54479, 54513, 54547, 54581, 54615, 54649, 54683, 54717, 54751, 54785, 54819, 54852, 54886 }; #line 12 "..\\src\\main.c" volatile u8 SECOND_FLAG; volatile u8 SECOND_NUM; volatile u16 BEEP_NUM; volatile u16 BEEP_HIGH_TIME; volatile u16 BEEP_CYC_TIME; volatile u16 BEEP_CYC_TIME_NUM; volatile u16 RELAY_DELAY_TIMER; volatile u16 RELAY_DELAY_STATUS; volatile u16 RELAY_DELAY_EN; volatile u8 KEY_VALUE; volatile u8 KEY_VALUE_BACK; volatile u8 KEY_VALUE_FLAG; volatile u8 KEY_MIX_VALUE; volatile u32 SYSTEM_TEMP; volatile u32 TEMP_AD_DATA_TEMP[20]; volatile u8 AD_READ_NUM; volatile u32 ADC_DATA_VALUE_REL; volatile u8 ADC_DATA_VALUE_REL_FLAG; volatile u32 ADC_CALC_VALUE_DEF; u8 MAIN_STATUS; u8 MAIN_STATUS_BACK; u8 STATUS_NEW_FLAG; u8 BTCOM_STATUS; u8 MENU_CHOOSE_VALUE; u8 MENU_SET_STATUS; u8 MENU_SET_POST_X; u8 MENU_SET_POST_Y; u8 MENU_X, MENU_X1, MENU_X2, MENU_X3; u8 MENU_Y; u16 BOARD_TEMP_PARA; u8 test_second_flag; u32 test_data; MFL_PARA MFL_PARA_A; AI_CONTROL Ai_CTRL; UART_PARA Uart3_Debug; UART_PARA Uart1_BTcom; u8 RDO_FANJIE_FLAG; u8 RDO_OPEN_FLAG; u8 MENU_TIME_DATA[7]; u8 MENU_TIME_DATA_SET[10]; u8 MENU_TIME_DATA_DIS[12]; const u8 MENU_TIME_DATA_DIS_POST[12] = {0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16}; const u8 MENU_TIME_DATA_SET_POST[7] = {0, 1, 3, 4, 8, 9, 10}; const u8 MENU_DIS_BLACK_FUN[8 * 3] = {1, 0, 6, 2, 0, 6, 3, 0, 6, 1, 4, 7, 2, 4, 7, 3, 4, 6, 1, 8, 7, 2, 8, 8}; const u8 MENU_DIS_BLACK_PRO[6 * 3] = {1, 0, 7, 2, 0, 7, 3, 0, 10, 1, 6, 10, 2, 6, 10, 3, 6, 10}; const u16 MFL_ZIXUAN_PROGRAM_INIT_DATA[] = { 100, 30, 0, 5, 250, 30, 0, 5, 0, 30, 0, 5, 0, 30, 0, 5, 0, 30, 0, 5, 0, 30, 0, 5, 0, 30, 0, 5, 0, 30, 0, 5, 0, 30, 0, 5, 0, 30, 0, 5, }; const u16 MFL_CALIBRATION_INIT_DATA[] = { 100, 100, 200, 200, 300, 300, 400, 400, 480, 480, 520, 520, 600, 600, 700, 700, 800, 800, 840, 840, 860, 860, 880, 880, 910, 910, 930, 930, 950, 950, }; const u16 MFL_PID_INIT_DATA[] = { 240, 240, 100, 100, 895, 15, 20, 780, 781, 60, 810, 200, 40, 835, 200, 920, 910, 918, 30, 835, 842, 10, 860, 880, 40, 800, 40, 482, 50, 100, }; const u16 MFL_EQUIPMENT_INIT_DATA[] = { 40, 10, 0, 300, 300, 5, 200, 250, 15, 200, 120, 15, 200, 120, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; const u16 MFL_EQUIPMENT_INIT_DATA_ENABLE[] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 }; const u16 MFL_SYSTEM_INIT_DATA[] = {305, 185, 60, 255, 850, 920, 85, 55, 104, 152, 120, 83}; const u16 MFL_USER_INIT_DATA[] = {1, 1, 30, 30}; u8 menu_temp_para_string_init_data[][11] = { "01电网监控", "02功率挥回", "03经典回温", "04慢灰升温", "05经典灰升", "06挥发升温", "07罗加回温", "08挥发回温", "09快速灰升", "10热偶检测", }; u8 menu_program_para_string_init_data[][11] = { "01保留参数", "02保留参数", "03保留参数", "04保留参数", "05保留参数", "06保留参数", "07保留参数", "08保留参数", "09保留参数", "10热偶设置", }; u8 menu_zixuan_para_string_init_data[][7] = { "第01段", "第02段", "第03段", "第04段", "第05段", "第06段", "第07段", "第08段", "第09段", "第10段", }; u8 BTCOM_STATUS; u8 BTCOM_STATUS_NEW_FLAG; u32 BTCOM_TIMER; u16 BTCOM_NUM; u16 BTCOM_MASTER_ADDRESS; u16 BTCOM_CONFIG_ADDRESS; u8 BTCOM_CONFIG_SPEED; u8 BTCOM_CONFIG_POWER; u8 BTCOM_CONFIG_CHANNEL; u8 BTCOM_CONFIG_MODE; u16 BTCOM_CONFIG_PASSWORD; u8 DEBUG_STATUS; u8 DEBUG_STATUS_NEW_FLAG; u32 DEBUG_TIMER; u16 DEBUG_NUM; u16 DEBUG_MASTER_ADDRESS; u16 DEBUG_CONFIG_ADDRESS; u8 DEBUG_CONFIG_SPEED; u8 DEBUG_CONFIG_POWER; u8 DEBUG_CONFIG_CHANNEL; u8 DEBUG_CONFIG_MODE; u16 DEBUG_CONFIG_PASSWORD; u16 DEBUG_CURRENT_MIN; u16 DEBUG_CURRENT_MAX; u16 TEST_CURRENT_MIN; u16 TEST_CURRENT_MAX; u16 TEST_VOLTAGE_MIN; u16 TEST_VOLTAGE_MAX; const u8 RS485_READ_COMMAND_STRING[] = {0x01, 0x03, 0x00, 0x00, 0x00, 0x03, 0x05, 0xCB}; volatile u16 RS485_READ_VOLTAGE_VALUE; volatile u16 RS485_READ_CURRENT_VALUE; volatile u16 RS485_READ_UPDATA_FLAG; void system_init (void); void data_base_init (void); void temp_dis_lcd (u8 x, u8 y, u32 temp); void time_dis_lcd (u8 x, u8 y, u32 temp); void MoveStove (u8 post); void MoveStove_Time (u16 time); void test_moter (void); void test_post (void); void test_power (void); void test_uart (void); void Beep_Set (u16 x, u16 y, u16 num); void Bresenham_Temp_Calibrate (void); void system_para_data_reset (void); void debug_com_data_display (u32 board_temp, u32 adc_data, u32 com_vol_data); void debug_fix_data_display (u8 board_temp_init, u32 adc_data_init, u32 com_vol_init); void debug_data_save (u8 board_temp_init, u32 adc_data_init); void temp_dis_lcd_3 (u8 x, u8 y, u32 temp); void temp_dis_lcd_4 (u8 x, u8 y, u32 temp); u32 temp_calc_value_MH (u32 temp, u32 target_temp, u32 meihua_range); u32 temp_value_filter_MH (void); void time_temp_dis_lcd (u8 x, u8 y, u8 *p, u16 temp); void time_set_dis_lcd (u8 x, u8 y, u8 *p); void time_temp_set_lcd (u8 x, u8 y, u8 *p); void Uart3_Debug_Send (u8 send_data_lenth); void Uart3_Debug_Recevie_Init (void); void Uart1_BTcom_Send (u8 send_data_lenth); void Uart1_BTcom_Recevie_Init (void); void power_detect_data_save (u16 address, u16 voltage, u16 current, u8 *date_temp); void power_detect_data_reset (u16 address); void power_detect_data_display (u8 x, u8 y, u16 address); int main(void) { u16 temp, n, rdo_protect_voltage; signed long x1 = 0; char y1 = 0; u16 time_back; u16 HF_TEMP; u8 LJ_HUIWEN_STEP, crc_num; u32 sum; u32 adc_data_temp[4]; u32 temp_sum, time_sum, cur_sum, adc_data, com_data; u32 temp_drop_sum, time_drop_sum; u16 cycle_drop_start, cycle_drop_end; s16 temp_drop_min, temp_drop_max; u16 x; u8 eeprom_data_temp[32]; u8 para_data_temp[64]; u16 temp_n, temp_a, temp_b, temp_c, temp_d; u32 crc_value, x_crc, y_crc; system_init (); MFL_PARA_A.FANJIE_DELAY_NUM = MFL_PARA_A . PID_PARA[9][1]; MFL_PARA_A.FANJIE_DELAY_NUM *= 20; for (temp = 0; temp < 20; temp++) TEMP_AD_DATA_TEMP[temp] = 0; MFL_PARA_A.temp_drop_buf_num = 0; MFL_PARA_A.temp_drop_enable = 0; if (MFL_PARA_A.EQUIPMENT_PARA[9][2] == 999) MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN = 1; else MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN = 0; MFL_PARA_A.Redianou_Type = MFL_PARA_A.EQUIPMENT_PARA[9][0]; for (temp = 0; temp < 1373; temp++) { if (MFL_PARA_A.Redianou_Type == 1) MFL_PARA_A.Temp_Table[temp] = s_table[temp]; else MFL_PARA_A.Temp_Table[temp] = k_table[temp]; } GPIO_SetBits(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x1000)), ((uint16_t)0x0020)); MFL_PARA_A.Redianou_Check_En_Counter = 200 * 5; for (temp = 0; temp < 1024; temp++) { MFL_PARA_A.Heat_work_time[temp] = 0; MFL_PARA_A.temp_drop_buf[temp] = 0; } MFL_PARA_A.temp_drop_high_temp = MFL_PARA_A.PID_PARA[9][0] / 100; MFL_PARA_A.temp_drop_cont_time = (MFL_PARA_A.PID_PARA[9][0] - MFL_PARA_A.temp_drop_high_temp * 100) / 10; MFL_PARA_A.temp_drop_draft_temp = MFL_PARA_A.PID_PARA[9][0] - MFL_PARA_A.temp_drop_high_temp * 100 - MFL_PARA_A.temp_drop_cont_time * 10; MFL_PARA_A.temp_drop_high_temp *= 100; MFL_PARA_A.temp_drop_cont_time *= 60; MFL_PARA_A.temp_drop_new_flag = 0; MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MFL_PARA_A.temp_dis_more_flag = 0; if (KEY_MIX_VALUE == 0xf6) { Beep_Set (10, 10, 1); MAIN_STATUS = 0x90; STATUS_NEW_FLAG = 1; } else if (KEY_MIX_VALUE == 0x7b) { Beep_Set (10, 10, 1); MAIN_STATUS = 0x80; STATUS_NEW_FLAG = 1; } else if (KEY_MIX_VALUE == 0xF3) { Beep_Set (3, 2, 2); MFL_PARA_A.temp_dis_more_flag = 2; } else if (KEY_MIX_VALUE == 0x7E) { Beep_Set (3, 2, 3); MAIN_STATUS = 0xA0; STATUS_NEW_FLAG = 1; } BTCOM_STATUS = 0x10; BTCOM_STATUS_NEW_FLAG = 1; BTCOM_TIMER = 0; BTCOM_NUM = 0; BTCOM_MASTER_ADDRESS = 0xFFFE; BTCOM_CONFIG_ADDRESS = 0; BTCOM_CONFIG_SPEED = 0x04; BTCOM_CONFIG_POWER = 0x00; BTCOM_CONFIG_CHANNEL = 0x19; BTCOM_CONFIG_MODE = 0x40; BTCOM_CONFIG_PASSWORD = 5200; DEBUG_STATUS = 0x10; DEBUG_STATUS_NEW_FLAG = 1; DEBUG_TIMER = 0; DEBUG_NUM = 0; DEBUG_MASTER_ADDRESS = 0xFFFE; DEBUG_CONFIG_ADDRESS = 0; DEBUG_CONFIG_SPEED = 0x04; DEBUG_CONFIG_POWER = 0x00; DEBUG_CONFIG_CHANNEL = 0x19; DEBUG_CONFIG_MODE = 0x40; DEBUG_CONFIG_PASSWORD = 5200; DEBUG_CURRENT_MIN = MFL_PARA_A . PID_PARA[0][1] / 2 - (MFL_PARA_A . PID_PARA[0][2] % 100); DEBUG_CURRENT_MAX = MFL_PARA_A . PID_PARA[0][1] / 2 + (MFL_PARA_A . PID_PARA[0][2] % 100); while (1) { if (DEBUG_STATUS == 0x10) { if (DEBUG_STATUS_NEW_FLAG) { DEBUG_STATUS_NEW_FLAG = 0; Uart3_Debug_Recevie_Init(); RS485_READ_UPDATA_FLAG = 0; DEBUG_TIMER = 400; } if (DEBUG_TIMER == 0) { DEBUG_STATUS = 0x20; DEBUG_STATUS_NEW_FLAG = 1; DEBUG_TIMER = 100; } else if ((Uart3_Debug.UART_RXD_FINISH == 1)) { Uart3_Debug_Recevie_Init(); DEBUG_STATUS = 0x20; DEBUG_STATUS_NEW_FLAG = 1; DEBUG_TIMER = 100; } } else if (DEBUG_STATUS == 0x20) { if (DEBUG_TIMER == 0) { DEBUG_NUM = 0; Uart3_Debug.UART_DMA_TXD_BUF[DEBUG_NUM++] = RS485_READ_COMMAND_STRING[0]; Uart3_Debug.UART_DMA_TXD_BUF[DEBUG_NUM++] = RS485_READ_COMMAND_STRING[1]; Uart3_Debug.UART_DMA_TXD_BUF[DEBUG_NUM++] = RS485_READ_COMMAND_STRING[2]; Uart3_Debug.UART_DMA_TXD_BUF[DEBUG_NUM++] = RS485_READ_COMMAND_STRING[3]; Uart3_Debug.UART_DMA_TXD_BUF[DEBUG_NUM++] = RS485_READ_COMMAND_STRING[4]; Uart3_Debug.UART_DMA_TXD_BUF[DEBUG_NUM++] = RS485_READ_COMMAND_STRING[5]; Uart3_Debug.UART_DMA_TXD_BUF[DEBUG_NUM++] = RS485_READ_COMMAND_STRING[6]; Uart3_Debug.UART_DMA_TXD_BUF[DEBUG_NUM++] = RS485_READ_COMMAND_STRING[7]; Uart3_Debug_Send (DEBUG_NUM); DEBUG_TIMER = 400; DEBUG_STATUS = 0x30; DEBUG_STATUS_NEW_FLAG = 1; } } else if (DEBUG_STATUS == 0x30) { if (DEBUG_TIMER == 0) { DEBUG_STATUS = 0x20; DEBUG_STATUS_NEW_FLAG = 1; } else if ((Uart3_Debug.UART_RXD_FINISH == 1)) { if ((Uart3_Debug.UART_DMA_RXD_BUF[0] == 0x01) && (Uart3_Debug.UART_DMA_RXD_BUF[1] == 0x03) && (Uart3_Debug.UART_DMA_RXD_BUF[2] == 0x06)) { RS485_READ_VOLTAGE_VALUE = Uart3_Debug.UART_DMA_RXD_BUF[3]; RS485_READ_VOLTAGE_VALUE <<= 8; RS485_READ_VOLTAGE_VALUE += Uart3_Debug.UART_DMA_RXD_BUF[4]; RS485_READ_CURRENT_VALUE = Uart3_Debug.UART_DMA_RXD_BUF[7]; RS485_READ_CURRENT_VALUE <<= 8; RS485_READ_CURRENT_VALUE += Uart3_Debug.UART_DMA_RXD_BUF[8]; if (RS485_READ_VOLTAGE_VALUE > TEST_VOLTAGE_MAX) { TEST_VOLTAGE_MAX = RS485_READ_VOLTAGE_VALUE; pcf8563_read_time(2, 7, MENU_TIME_DATA); power_detect_data_save(32, RS485_READ_VOLTAGE_VALUE, RS485_READ_CURRENT_VALUE, MENU_TIME_DATA); } if (RS485_READ_VOLTAGE_VALUE < TEST_VOLTAGE_MIN) { TEST_VOLTAGE_MIN = RS485_READ_VOLTAGE_VALUE; pcf8563_read_time(2, 7, MENU_TIME_DATA); power_detect_data_save(33, RS485_READ_VOLTAGE_VALUE, RS485_READ_CURRENT_VALUE, MENU_TIME_DATA); } if (RS485_READ_CURRENT_VALUE > TEST_CURRENT_MAX) { TEST_CURRENT_MAX = RS485_READ_CURRENT_VALUE; pcf8563_read_time(2, 7, MENU_TIME_DATA); power_detect_data_save(34, RS485_READ_VOLTAGE_VALUE, RS485_READ_CURRENT_VALUE, MENU_TIME_DATA); } if ((RS485_READ_CURRENT_VALUE > (DEBUG_CURRENT_MIN * 10)) && (RS485_READ_CURRENT_VALUE < (DEBUG_CURRENT_MAX * 10))) { if ((TEST_CURRENT_MIN == 0) || (TEST_CURRENT_MIN == 0xFFFF)) { TEST_CURRENT_MIN = RS485_READ_CURRENT_VALUE; pcf8563_read_time(2, 7, MENU_TIME_DATA); power_detect_data_save(35, RS485_READ_VOLTAGE_VALUE, RS485_READ_CURRENT_VALUE, MENU_TIME_DATA); } } RS485_READ_UPDATA_FLAG = 1; if ((MAIN_STATUS & 0x0F)) { if (RS485_READ_VOLTAGE_VALUE > (MFL_PARA_A . PID_PARA[0][0] * 10)) { lcd_display_string(0, 0, " "); lcd_display_string(1, 0, " "); lcd_display_string(2, 0, " 供电电压偏高,请检查!"); lcd_display_string(3, 0, " "); Beep_Set (1, 1, 50000); Ai_CTRL.PID_SET_ALL = 1; while (1); } if (RS485_READ_CURRENT_VALUE > (MFL_PARA_A . PID_PARA[0][1] * 10)) { lcd_display_string(0, 0, " "); lcd_display_string(1, 0, " "); lcd_display_string(2, 0, " 加热电流偏大,请检查!"); lcd_display_string(3, 0, " "); Beep_Set (1, 1, 50000); Ai_CTRL.PID_SET_ALL = 1; while (1); } if ((RS485_READ_CURRENT_VALUE > (DEBUG_CURRENT_MIN * 10)) && (RS485_READ_CURRENT_VALUE < (DEBUG_CURRENT_MAX * 10))) { lcd_display_string(0, 0, " "); lcd_display_string(1, 0, " "); lcd_display_string(2, 0, " 加热电流偏小,请检查!"); lcd_display_string(3, 0, " "); Beep_Set (1, 1, 50000); Ai_CTRL.PID_SET_ALL = 1; while (1); } } } Uart3_Debug_Recevie_Init(); DEBUG_STATUS = 0x20; DEBUG_STATUS_NEW_FLAG = 1; DEBUG_TIMER = 100; } } if (BTCOM_STATUS == 0x10) { if (BTCOM_STATUS_NEW_FLAG) { BTCOM_STATUS_NEW_FLAG = 0; GPIO_SetBits(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x0C00)), ((uint16_t)0x0020)); GPIO_SetBits(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x0C00)), ((uint16_t)0x0010)); BTCOM_TIMER = 10; } if (BTCOM_TIMER == 0) { BTCOM_STATUS = 0x20; BTCOM_STATUS_NEW_FLAG = 1; } } else if (BTCOM_STATUS == 0x20) { BTCOM_NUM = 0; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = 0xC2; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = 0x00; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = 0x08; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(BTCOM_CONFIG_ADDRESS >> 8); Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(BTCOM_CONFIG_ADDRESS); Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = 0x60 + BTCOM_CONFIG_SPEED; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = BTCOM_CONFIG_POWER; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = BTCOM_CONFIG_CHANNEL; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = BTCOM_CONFIG_MODE; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(BTCOM_CONFIG_PASSWORD >> 8); Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(BTCOM_CONFIG_PASSWORD); Uart1_BTcom_Send (BTCOM_NUM); Uart1_BTcom_Recevie_Init(); BTCOM_TIMER = 100; BTCOM_STATUS = 0x30; BTCOM_STATUS_NEW_FLAG = 1; } else if (BTCOM_STATUS == 0x30) { if (BTCOM_TIMER == 0) { BTCOM_STATUS = 0x20; BTCOM_STATUS_NEW_FLAG = 1; } if ((Uart1_BTcom.UART_RXD_FINISH == 1)) { for (BTCOM_NUM = 1; BTCOM_NUM < 11; BTCOM_NUM++) { if (Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM] != Uart1_BTcom.UART_DMA_RXD_BUF[BTCOM_NUM]) BTCOM_NUM = 0xFE; } if (BTCOM_NUM < 0xFE) { GPIO_ResetBits(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x0C00)), ((uint16_t)0x0020)); GPIO_ResetBits(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x0C00)), ((uint16_t)0x0010)); BTCOM_STATUS = 0x40; BTCOM_STATUS_NEW_FLAG = 1; } else { BTCOM_STATUS = 0x20; BTCOM_STATUS_NEW_FLAG = 1; } Uart1_BTcom_Recevie_Init(); } } else if (BTCOM_STATUS == 0x40) { if ((Uart1_BTcom.UART_RXD_FINISH == 1)) { if (Uart1_BTcom.UART_DMA_RXD_BUF[0] == 0xA5) { BTCOM_NUM = 0; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(BTCOM_MASTER_ADDRESS >> 8); Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(BTCOM_MASTER_ADDRESS); Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = BTCOM_CONFIG_CHANNEL; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = 0xA5; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = 0; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = MFL_PARA_A.TIME_DATA_UART_NUM++; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = MAIN_STATUS; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = MFL_PARA_A.SLAVE_STATUS; temp = MFL_PARA_A.TEMP_DIS; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(temp >> 8); Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(temp); temp = MFL_PARA_A.TIME; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(temp >> 8); Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(temp); Uart1_BTcom.UART_DMA_TXD_BUF[4] = BTCOM_NUM - 3; crc_num = 0; for (n = 3; n < BTCOM_NUM; n++) crc_num += Uart1_BTcom.UART_DMA_TXD_BUF[n]; Uart1_BTcom.UART_DMA_TXD_BUF[BTCOM_NUM++] = (u8)(crc_num); Uart1_BTcom_Send (BTCOM_NUM); } Uart1_BTcom_Recevie_Init(); } } if ((MFL_PARA_A.Redianou_Check_En_Counter == 0) && (MAIN_STATUS != 0xA0) && (MAIN_STATUS != 0x80) && (MAIN_STATUS != 0x90)) { if ((MFL_PARA_A.temp_drop_enable) && (MFL_PARA_A.PID_PARA[9][0] >= 111)) { if ((MFL_PARA_A.temp_drop_new_flag) && (MFL_PARA_A.FANJIE_DELAY_NUM == 0)) { MFL_PARA_A.temp_drop_new_flag = 0; if ((MFL_PARA_A.TEMP_DIS < MFL_PARA_A.temp_drop_high_temp) && (MFL_PARA_A.temp_drop_run_cycle > MFL_PARA_A.temp_drop_cont_time)) { temp_drop_sum = 0; time_drop_sum = 0; temp_drop_min = 2000; temp_drop_max = -2000; if (MFL_PARA_A.temp_drop_buf_num >= MFL_PARA_A.temp_drop_cont_time) { cycle_drop_start = MFL_PARA_A.temp_drop_buf_num - MFL_PARA_A.temp_drop_cont_time; cycle_drop_end = MFL_PARA_A.temp_drop_buf_num; for (temp = cycle_drop_start; temp < cycle_drop_end; temp++) { if (MFL_PARA_A.temp_drop_buf[temp] > temp_drop_max) temp_drop_max = MFL_PARA_A.temp_drop_buf[temp]; else if (MFL_PARA_A.temp_drop_buf[temp] < temp_drop_min) temp_drop_min = MFL_PARA_A.temp_drop_buf[temp]; time_drop_sum += MFL_PARA_A.Heat_work_time[temp]; } } else { cycle_drop_start = MFL_PARA_A.temp_drop_buf_num + 1024; cycle_drop_start -= MFL_PARA_A.temp_drop_cont_time; cycle_drop_end = MFL_PARA_A.temp_drop_buf_num; for (temp = cycle_drop_start; temp < 1024; temp++) { if (MFL_PARA_A.temp_drop_buf[temp] > temp_drop_max) temp_drop_max = MFL_PARA_A.temp_drop_buf[temp]; else if (MFL_PARA_A.temp_drop_buf[temp] < temp_drop_min) temp_drop_min = MFL_PARA_A.temp_drop_buf[temp]; time_drop_sum += MFL_PARA_A.Heat_work_time[temp]; } for (temp = 0; temp < cycle_drop_end; temp++) { if (MFL_PARA_A.temp_drop_buf[temp] > temp_drop_max) temp_drop_max = MFL_PARA_A.temp_drop_buf[temp]; else if (MFL_PARA_A.temp_drop_buf[temp] < temp_drop_min) temp_drop_min = MFL_PARA_A.temp_drop_buf[temp]; time_drop_sum += MFL_PARA_A.Heat_work_time[temp]; } } time_drop_sum *= MFL_PARA_A.temp_drop_draft_temp; time_drop_sum /= MFL_PARA_A.temp_drop_cont_time; time_drop_sum /= 200; temp_drop_max -= temp_drop_min; if (temp_drop_max < time_drop_sum) { lcd_display_string(0, 0, " "); lcd_display_string(1, 0, " "); lcd_display_string(2, 0, "热电偶加热异常,请检查!"); lcd_display_string(3, 0, " "); Beep_Set (1, 1, 50000); Ai_CTRL.PID_SET_ALL = 1; RELAY_DELAY_EN = 0; GPIO_ResetBits(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x1000)), ((uint16_t)0x0020)); while (1); } } } } if ((MFL_PARA_A . PID_PARA[9][2] > 0) && (MFL_PARA_A.FANJIE_DELAY_NUM == 0)) { if ((MFL_PARA_A.temp_bipolar_flag) && (MFL_PARA_A.TEMP_DIS >= MFL_PARA_A . PID_PARA[9][2])) { lcd_display_string(0, 0, " "); lcd_display_string(1, 0, " "); lcd_display_string(2, 0, " 热电偶反接,请检查! "); lcd_display_string(3, 0, " "); Beep_Set (1, 1, 50000); Ai_CTRL.PID_SET_ALL = 1; RELAY_DELAY_EN = 0; GPIO_ResetBits(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x1000)), ((uint16_t)0x0020)); while (1); } } if ((MFL_PARA_A.temp_bipolar_flag == 0) && (MFL_PARA_A.TEMP_DIS >= 1300)) { lcd_display_string(0, 0, " "); lcd_display_string(1, 0, " "); lcd_display_string(2, 0, " 热电偶断路,请检查! "); lcd_display_string(3, 0, " "); Beep_Set (1, 1, 50000); Ai_CTRL.PID_SET_ALL = 1; RELAY_DELAY_EN = 0; GPIO_ResetBits(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x1000)), ((uint16_t)0x0020)); while (1); } if ((MFL_PARA_A.temp_bipolar_flag == 0) && (MFL_PARA_A.TEMP_DIS >= (MFL_PARA_A.EQUIPMENT_PARA[9][1] + 1000))) { lcd_display_string(0, 0, " "); lcd_display_string(1, 0, " "); lcd_display_string(2, 0, " 加热回路异常,请检查 "); lcd_display_string(3, 0, " "); Beep_Set (1, 1, 50000); Ai_CTRL.PID_SET_ALL = 1; RELAY_DELAY_EN = 0; GPIO_ResetBits(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x1000)), ((uint16_t)0x0020)); while (1); } } if (Ai_CTRL.TIME_FLAG) { Ai_CTRL.TIME_FLAG = 0; TaskFuzzy (); } if ((MAIN_STATUS >= 0x21) && (MAIN_STATUS <= 0x27)) { if (Ai_CTRL.PWM_STATUS_FLAG) { Ai_CTRL.PWM_STATUS_FLAG = 0; lcd_post (0, 11); if (Ai_CTRL.PWM_STATUS) lcd_display (0xA1F1); else lcd_display (0xA1A1); } } if (MAIN_STATUS == 0x90) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_reset (); KEY_VALUE = 0xff; } if ((KEY_VALUE == 0x04)) { Beep_Set (10, 10, 1); lcd_display_string(3, 0, " 正在恢复中,请稍后 "); system_para_data_reset (); Beep_Set (10, 10, 1); lcd_display_string(3, 0, " 已恢复出厂设置,请重启"); while (1); } else if ((KEY_VALUE == 0x05)) { Beep_Set (10, 10, 1); lcd_display_string(3, 0, " 已取消恢复,请重启"); while (1); } } else if (MAIN_STATUS == 0xA0) { lcd_display_string(0, 0, "VH: "); lcd_display_string(1, 0, "VL: "); lcd_display_string(2, 0, "AH: "); lcd_display_string(3, 0, "AL: "); power_detect_data_display(0, 1, 32); power_detect_data_display(1, 1, 33); power_detect_data_display(2, 1, 34); power_detect_data_display(3, 1, 35); Ai_CTRL.PID_SET_ALL = 1; while (1) { if ((KEY_VALUE == 0x04)) { Beep_Set (10, 1, 1); power_detect_data_reset (32); power_detect_data_reset (33); power_detect_data_reset (34); power_detect_data_reset (35); lcd_display_string(0, 0, " "); lcd_display_string(1, 0, " "); lcd_display_string(2, 0, " 清除完成,请重启设备 "); lcd_display_string(3, 0, " "); break; } } while (1); } else if (MAIN_STATUS == 0x80) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_debug (); if (MFL_PARA_A.Redianou_Type == 1) rdo_protect_voltage = 543; else rdo_protect_voltage = 2274; debug_fix_data_display (MFL_PARA_A.board_temp_init_data, MFL_PARA_A.ads1220_ch23_init_data, rdo_protect_voltage); MENU_Y = 0; KEY_VALUE = 0xff; } if ((GPIO_ReadInputDataBit(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x1000)),((uint16_t)0x0010))) == 0) { adc_data = ads1220_read_data (); } if (SECOND_FLAG) { SECOND_FLAG = 0; debug_com_data_display (MFL_PARA_A.adc_BoardTemp_data, adc_data, MFL_PARA_A.adc_Compare_data); } if ((KEY_VALUE == 0x03)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.board_temp_init_data < 199) { MFL_PARA_A.board_temp_init_data++; debug_fix_data_display (MFL_PARA_A.board_temp_init_data, MFL_PARA_A.ads1220_ch23_init_data, rdo_protect_voltage); } } else if ((KEY_VALUE == 0x00)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.board_temp_init_data > 1) { MFL_PARA_A.board_temp_init_data--; debug_fix_data_display (MFL_PARA_A.board_temp_init_data, MFL_PARA_A.ads1220_ch23_init_data, rdo_protect_voltage); } } else if ((KEY_VALUE == 0x06)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.ads1220_ch23_init_data = adc_data; debug_fix_data_display (MFL_PARA_A.board_temp_init_data, MFL_PARA_A.ads1220_ch23_init_data, rdo_protect_voltage); } else if ((KEY_VALUE == 0x04)) { Beep_Set (10, 10, 1); debug_data_save (MFL_PARA_A.board_temp_init_data, MFL_PARA_A.ads1220_ch23_init_data); lcd_display_string(1, 0, " "); lcd_display_string(2, 0, " "); lcd_display_string(3, 0, " 已保存调试参数,请重启"); while (1); } } else if (MAIN_STATUS == 0x10) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_welcome (); Bresenham_Temp_Calibrate (); } if (KEY_VALUE != 0xff) { MENU_X = 0; MENU_Y = 0; MENU_X1 = 0; MENU_X2 = 0; MENU_X3 = 0; Beep_Set (10, 10, 1); KEY_VALUE = 0xff; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; MENU_X = MFL_PARA_A.menu_select_post; MENU_X1 = MENU_X; } } else if (MAIN_STATUS == 0x20) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_function (); MENU_X = MENU_X1; lcd_display_black (MENU_DIS_BLACK_FUN[MENU_X * 3], MENU_DIS_BLACK_FUN[MENU_X * 3 + 1], MENU_DIS_BLACK_FUN[MENU_X * 3 + 2], 1); } if ((KEY_VALUE == 0x03)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black (MENU_DIS_BLACK_FUN[MENU_X * 3], MENU_DIS_BLACK_FUN[MENU_X * 3 + 1], MENU_DIS_BLACK_FUN[MENU_X * 3 + 2], 0); if (MENU_X > 0) MENU_X--; else MENU_X = 8 - 1; lcd_display_black (MENU_DIS_BLACK_FUN[MENU_X * 3], MENU_DIS_BLACK_FUN[MENU_X * 3 + 1], MENU_DIS_BLACK_FUN[MENU_X * 3 + 2], 1); } else if ((KEY_VALUE == 0x00)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black (MENU_DIS_BLACK_FUN[MENU_X * 3], MENU_DIS_BLACK_FUN[MENU_X * 3 + 1], MENU_DIS_BLACK_FUN[MENU_X * 3 + 2], 0); if (MENU_X < (8 - 1)) MENU_X++; else MENU_X = 0; lcd_display_black (MENU_DIS_BLACK_FUN[MENU_X * 3], MENU_DIS_BLACK_FUN[MENU_X * 3 + 1], MENU_DIS_BLACK_FUN[MENU_X * 3 + 2], 1); } else if ((KEY_VALUE == 0x07) && (MENU_Y < (3 - 1))) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black (MENU_DIS_BLACK_FUN[MENU_X * 3], MENU_DIS_BLACK_FUN[MENU_X * 3 + 1], MENU_DIS_BLACK_FUN[MENU_X * 3 + 2], 0); MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; MENU_X1 = MENU_X; MENU_X = 0; MENU_Y++; } else if (KEY_VALUE == 0x04) { Beep_Set (5, 1, 1); KEY_VALUE = 0xff; MENU_X1 = MENU_X; eeprom_24c64_write_byte(512, MENU_X); lcd_display_black (MENU_DIS_BLACK_FUN[MENU_X * 3], MENU_DIS_BLACK_FUN[MENU_X * 3 + 1], MENU_DIS_BLACK_FUN[MENU_X * 3 + 2], 0); MAIN_STATUS = MAIN_STATUS + MENU_X + 1; STATUS_NEW_FLAG = 0x01; } } else if (MAIN_STATUS == 0x30) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_program (); MENU_X = MENU_X2; lcd_display_black (MENU_DIS_BLACK_PRO[MENU_X * 3], MENU_DIS_BLACK_PRO[MENU_X * 3 + 1], MENU_DIS_BLACK_PRO[MENU_X * 3 + 2], 1); } if ((KEY_VALUE == 0x03)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black (MENU_DIS_BLACK_PRO[MENU_X * 3], MENU_DIS_BLACK_PRO[MENU_X * 3 + 1], MENU_DIS_BLACK_PRO[MENU_X * 3 + 2], 0); if (MENU_X > 0) MENU_X--; else MENU_X = 6 - 1; lcd_display_black (MENU_DIS_BLACK_PRO[MENU_X * 3], MENU_DIS_BLACK_PRO[MENU_X * 3 + 1], MENU_DIS_BLACK_PRO[MENU_X * 3 + 2], 1); } else if ((KEY_VALUE == 0x00)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black (MENU_DIS_BLACK_PRO[MENU_X * 3], MENU_DIS_BLACK_PRO[MENU_X * 3 + 1], MENU_DIS_BLACK_PRO[MENU_X * 3 + 2], 0); if (MENU_X < (6 - 1)) MENU_X++; else MENU_X = 0; lcd_display_black (MENU_DIS_BLACK_PRO[MENU_X * 3], MENU_DIS_BLACK_PRO[MENU_X * 3 + 1], MENU_DIS_BLACK_PRO[MENU_X * 3 + 2], 1); } else if ((KEY_VALUE == 0x07) && (MENU_Y < (3 - 1))) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black (MENU_DIS_BLACK_PRO[MENU_X * 3], MENU_DIS_BLACK_PRO[MENU_X * 3 + 1], MENU_DIS_BLACK_PRO[MENU_X * 3 + 2], 0); MAIN_STATUS = 0x40; STATUS_NEW_FLAG = 0x01; MENU_X2 = MENU_X; MENU_X = 0; MENU_Y++; } else if ((KEY_VALUE == 0x02) && (MENU_Y > 0)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black (MENU_DIS_BLACK_PRO[MENU_X * 3], MENU_DIS_BLACK_PRO[MENU_X * 3 + 1], MENU_DIS_BLACK_PRO[MENU_X * 3 + 2], 0); MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; MENU_X2 = MENU_X; MENU_X = 0; MENU_Y--; } else if (KEY_VALUE == 0x04) { Beep_Set (5, 1, 1); KEY_VALUE = 0xff; MENU_X2 = MENU_X; lcd_display_black (MENU_DIS_BLACK_PRO[MENU_X * 3], MENU_DIS_BLACK_PRO[MENU_X * 3 + 1], MENU_DIS_BLACK_PRO[MENU_X * 3 + 2], 0); MAIN_STATUS_BACK = MAIN_STATUS + MENU_X + 1; if (MAIN_STATUS_BACK > 0x33) MAIN_STATUS = 0x41; else MAIN_STATUS = MAIN_STATUS_BACK; STATUS_NEW_FLAG = 0x01; } } else if (MAIN_STATUS == 0x40) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_message (); } if ((KEY_VALUE == 0x02) && (MENU_Y > 0)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; MENU_X = 0; MENU_Y--; } } else if (MAIN_STATUS == 0x21) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_manhui (); MFL_PARA_A.temp_drop_enable = 1; MFL_PARA_A.temp_drop_run_cycle = 0; MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; } if (KEY_VALUE == 0x05) { MFL_PARA_A.TIME_NUM = 0; Beep_Set (15, 15, 1); KEY_VALUE = 0xff; CtrlStove(0, 0, 40); MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { if(MFL_PARA_A.TEMP_VALUE <= 100) { MFL_PARA_A.SLAVE_STATUS = 1; MFL_PARA_A.SLAVE_STATUS_NEW = 1; Ai_CTRL.PID_SET_ALL = 0; } else { if (MFL_PARA_A.SLAVE_STATUS_NEW) { Beep_Set (5, 1, 1); lcd_display_string(3, 0, "提示:等待炉温下降... "); MFL_PARA_A.SLAVE_STATUS_NEW = 0; } CtrlStove(0, 0, 40); } if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); } } break; case 1: { if(1) { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); } if (MFL_PARA_A.SLAVE_STATUS_NEW) { Beep_Set (1, 1, 1); MFL_PARA_A.SLAVE_STATUS_NEW = 0; } if (1) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 11; MFL_PARA_A.SLAVE_STATUS_NEW = 1; CtrlStove(1, 500, 40); lcd_display_string(0, 0, "慢灰状态:测试中... "); lcd_display_string(3, 0, "提示:请打开烟囱并留门缝"); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.TEMP_MANHUI_INIT = MFL_PARA_A.TEMP_VALUE; } } } break; case 11: { if (MFL_PARA_A.TEMP_VALUE < 500) { if (MFL_PARA_A.TEMP_VALUE > (MFL_PARA_A.TIME * (500 - MFL_PARA_A.TEMP_MANHUI_INIT) / 1800 + MFL_PARA_A.TEMP_MANHUI_INIT)) { Ai_CTRL.PID_SET_ALL = 1; } else { Ai_CTRL.PID_SET_ALL = 0; } } else { MFL_PARA_A.SLAVE_STATUS = 2; MFL_PARA_A.SLAVE_STATUS_NEW = 1; Ai_CTRL.PID_SET_ALL = 0; } if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } } break; case 2: { if(MFL_PARA_A.TEMP_VALUE >= 500) { Beep_Set (10, 10, 2); lcd_display_string(0, 0, "慢灰状态:测试中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); MFL_PARA_A.SLAVE_STATUS = 3; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } else { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } } } break; case 3: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.TEMP_DIS >= 500) { temp_dis_lcd (1, 5, (MFL_PARA_A.TEMP_DIS - 500) / 4 + 500); lcd_display_temp_space (); } else { temp_dis_lcd (1, 5, 500 - (500 - MFL_PARA_A.TEMP_DIS) / 4); lcd_display_temp_space (); } time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if(MFL_PARA_A.TIME == 1770) Beep_Set (10, 10, 1); if(MFL_PARA_A.TIME >= 1800) { lcd_display_string(0, 0, "慢灰状态:测试中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); MFL_PARA_A.SLAVE_STATUS = 4; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.TEMP_DIS_START = MFL_PARA_A.TEMP_DIS; MFL_PARA_A.TEMP_DIS_END = MFL_PARA_A.PID_PARA[3][1]; MFL_PARA_A.TIME_MF_SET = MFL_PARA_A.PID_PARA[3][0]; MFL_PARA_A.TIME_MF_SET *= 60; MFL_PARA_A.TIME_MF_SET_BEEP = MFL_PARA_A.TIME_MF_SET - 30; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; CtrlStove(1, 815, 40); } } break; case 4: { if (MFL_PARA_A.TEMP_VALUE >= 815) { lcd_display_string(0, 0, "慢灰状态:测试中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); MFL_PARA_A.SLAVE_STATUS = 5; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; Ai_CTRL.PID_SET_ALL = 0; Beep_Set (10, 10, 2); } else if ((MFL_PARA_A.TEMP_VALUE >= 810) && (KEY_VALUE == 0x04)) { KEY_VALUE = 0xff; lcd_display_string(0, 0, "慢灰状态:测试中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); MFL_PARA_A.SLAVE_STATUS = 5; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; Ai_CTRL.PID_SET_ALL = 0; Beep_Set (10, 10, 3); } else { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (MFL_PARA_A.TEMP_VALUE < MFL_PARA_A.TEMP_DIS_END) { if (MFL_PARA_A.TEMP_VALUE > MFL_PARA_A.TEMP_DIS_START) { sum = MFL_PARA_A.TIME; sum *= MFL_PARA_A.PID_PARA[3][2]; sum /= 60; sum += MFL_PARA_A.TEMP_DIS_START; if (MFL_PARA_A.TEMP_VALUE > (u16)(sum)) Ai_CTRL.PID_SET_ALL = 1; else Ai_CTRL.PID_SET_ALL = 0xffff; } else { Ai_CTRL.PID_SET_ALL = 0xffff; } } else if (MFL_PARA_A.TEMP_VALUE < (815)) { Ai_CTRL.PID_SET_ALL = 0; } } } break; case 5: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if(MFL_PARA_A.TIME == MFL_PARA_A.TIME_MF_SET_BEEP) Beep_Set (10, 10, 15); if(MFL_PARA_A.TIME >= MFL_PARA_A.TIME_MF_SET) { lcd_display_string(0, 0, "慢灰状态:试验完成 "); lcd_display_string(3, 0, "提示:按确认键检查灼烧 "); MFL_PARA_A.SLAVE_STATUS = 6; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; CtrlStove(0, 0, 40); } } break; case 6: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); } if(KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 7; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(0, 0, "慢灰状态:灼烧中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请打开烟囱并留门缝"); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; CtrlStove(1, 815, 40); } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; CtrlStove(0, 0, 40); MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; } } break; case 7: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (MFL_PARA_A.TEMP_VALUE >= 815 ) { lcd_display_string(0, 0, "慢灰状态:灼烧中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); MFL_PARA_A.SLAVE_STATUS = 8; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } } break; case 8: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if(MFL_PARA_A.TIME == 1170) Beep_Set (10, 10, 15); if(MFL_PARA_A.TIME >= 1200) { lcd_display_string(0, 0, "慢灰状态:灼烧完成 "); lcd_display_string(3, 0, "提示:按确认键检查灼烧 "); MFL_PARA_A.SLAVE_STATUS = 9; MFL_PARA_A.SLAVE_STATUS_NEW = 1; CtrlStove(0, 100, 40); } } break; case 9: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); } if(KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 7; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(0, 0, "慢灰状态:灼烧中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请打开烟囱并留门缝"); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; CtrlStove(1, 815, 40); } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; CtrlStove(0, 0, 40); MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; SECOND_NUM = 0; while (SECOND_NUM < 190); } } break; default: break; } } else if (MAIN_STATUS == 0x22) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_kuaihui (); Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.temp_drop_enable = 1; MFL_PARA_A.temp_drop_run_cycle = 0; MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { CtrlStove(1, 850, 40); lcd_display_string(0, 0, "经典快灰:升温... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请打开烟囱 "); MFL_PARA_A.SLAVE_STATUS = 1; MFL_PARA_A.TEMP_DIS_START = MFL_PARA_A.TEMP_DIS; MFL_PARA_A.TEMP_DIS_END = MFL_PARA_A.PID_PARA[4][1]; MFL_PARA_A.TIME_KF_SET = MFL_PARA_A.PID_PARA[4][0]; MFL_PARA_A.TIME_KF_SET *= 60; MFL_PARA_A.TIME_KF_SET_BEEP = MFL_PARA_A.TIME_KF_SET - 30; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } break; case 1: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (MFL_PARA_A.TEMP_VALUE < MFL_PARA_A.TEMP_DIS_END) { if (MFL_PARA_A.TEMP_VALUE > MFL_PARA_A.TEMP_DIS_START) { sum = MFL_PARA_A.TIME; sum *= MFL_PARA_A.PID_PARA[4][2]; sum /= 60; sum += MFL_PARA_A.TEMP_DIS_START; if (MFL_PARA_A.TEMP_VALUE > (u16)(sum)) Ai_CTRL.PID_SET_ALL = 1; else Ai_CTRL.PID_SET_ALL = 0xffff; } else { Ai_CTRL.PID_SET_ALL = 0xffff; } } else if (MFL_PARA_A.TEMP_VALUE < (850 - 2)) { Ai_CTRL.PID_SET_ALL = 0; } if (MFL_PARA_A.TEMP_VALUE >= (850 - 2)) { lcd_display_string(0, 0, "经典快灰:恒温... "); lcd_display_string(3, 0, "提示:按确认键开始送样 "); Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.SLAVE_STATUS = 2; Beep_Set (10, 10, 150); } else if ((MFL_PARA_A.TEMP_VALUE >= 845) && (KEY_VALUE == 0x04)) { KEY_VALUE = 0xff; lcd_display_string(0, 0, "经典快灰:恒温... "); lcd_display_string(3, 0, "提示:按确认键开始送样 "); Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.SLAVE_STATUS = 2; Beep_Set (10, 10, 150); } } break; case 2: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (KEY_VALUE != 0xff) Beep_Set (10, 10, 0); if ((KEY_VALUE == 0x04)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:送样完成后按确认键"); MFL_PARA_A.SLAVE_STATUS = 10; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } } break; case 10: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_string(0, 0, "经典快灰:测试中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请打开烟囱 "); MFL_PARA_A.SLAVE_STATUS = 17; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.SLAVE_STATUS = 40; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.Temp_Test_Min = 930; CtrlStove(1, 815, 40); Ai_CTRL.SumErrLimit = 0; Ai_CTRL.PID_SET_FLAG = 1; Ai_CTRL.PID_TEST_STATUS = 0; } } break; case 40: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.Temp_Test_Min > MFL_PARA_A.TEMP_VALUE) { MFL_PARA_A.Temp_Test_Min = MFL_PARA_A.TEMP_VALUE; MFL_PARA_A.Temp_Test_Time_Start = MFL_PARA_A.TIME; } if (MFL_PARA_A.Temp_Test_Min < MFL_PARA_A.TEMP_VALUE) { if (MFL_PARA_A.TEMP_VALUE < (815 - 10 * 2)) { HF_TEMP = (MFL_PARA_A.TEMP_VALUE + (MFL_PARA_A.TEMP_VALUE - MFL_PARA_A.Temp_Test_Min) * 10 / ((815 - 10 * 2) - MFL_PARA_A.Temp_Test_Min)); MFL_PARA_A.TEMP_VALUE_DISPLAY = (MFL_PARA_A.TEMP_VALUE + (MFL_PARA_A.TEMP_VALUE - MFL_PARA_A.Temp_Test_Min) * 10 / ((815 - 10 * 2) - MFL_PARA_A.Temp_Test_Min)); temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_VALUE_DISPLAY); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } else { HF_TEMP = (MFL_PARA_A.TEMP_VALUE + 815) / 2; MFL_PARA_A.TEMP_VALUE_DISPLAY = ((MFL_PARA_A.TEMP_VALUE + 815) / 2); temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_VALUE_DISPLAY); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } } else { MFL_PARA_A.TEMP_VALUE_DISPLAY = MFL_PARA_A.TEMP_DIS; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (Ai_CTRL.PID_SET_FLAG) { if (MFL_PARA_A.TIME < MFL_PARA_A . PID_PARA[2][0]) { Ai_CTRL.PID_SET_ALL = 1; Ai_CTRL.PWM_TIME_NUM = 0; Ai_CTRL.PID_TEST_STATUS = 1; } else if ((MFL_PARA_A.Temp_Test_Min >= MFL_PARA_A.TEMP_VALUE)) { Ai_CTRL.PID_SET_ALL = MFL_PARA_A . PID_PARA[1][0] + 2; Ai_CTRL.PID_TEST_STATUS = 2; } else if ((MFL_PARA_A.TEMP_VALUE_DISPLAY < MFL_PARA_A . PID_PARA[2][1])) { Ai_CTRL.PID_SET_ALL = MFL_PARA_A . PID_PARA[1][0] + 2; Ai_CTRL.PID_TEST_STATUS = 3; } else if ((MFL_PARA_A.TEMP_VALUE_DISPLAY < (MFL_PARA_A . PID_PARA[2][2]))) { Ai_CTRL.PID_SET_ALL = 1; Ai_CTRL.PWM_TIME_NUM = 0; Ai_CTRL.PID_TEST_STATUS = 4; } else { Ai_CTRL.PID_SET_FLAG = 0; Ai_CTRL.PID_SET_ALL = 0; Ai_CTRL.TIME_NUM = 0; CtrlStove(1, 815, 40); Ai_CTRL.SumErrLimit = 0; Ai_CTRL.PID_TEST_STATUS = 5; } } if(MFL_PARA_A.TEMP_VALUE >= (815 - 2)) { CtrlStove(1, 815, 40); MFL_PARA_A.SLAVE_STATUS = 17; Ai_CTRL.PID_SET_ALL = 0; } } } break; case 17: { if(MFL_PARA_A.TEMP_VALUE >= (815 - 2)) { MFL_PARA_A.SLAVE_STATUS = 113; lcd_display_string(0, 0, "经典快灰:测试中... "); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; } else { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } } } break; case 113: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if(MFL_PARA_A.TIME == MFL_PARA_A.TIME_KF_SET_BEEP) { Beep_Set (10, 10, 15); } if(MFL_PARA_A.TIME >= MFL_PARA_A.TIME_KF_SET) { lcd_display_string(2, 0, "提示:按退出键继续试验 "); lcd_display_string(3, 0, "提示:按确认键检查灼烧 "); MFL_PARA_A.SLAVE_STATUS = 11; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } } break; case 11: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); } if((KEY_VALUE == 0x04)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 14; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(0, 0, "经典快灰:测试中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示: "); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } else if ((KEY_VALUE == 0x05)) { Beep_Set (15, 1, 1); KEY_VALUE = 0xff; MAIN_STATUS = 0x22; STATUS_NEW_FLAG = 0x01; } } break; case 14: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (MFL_PARA_A.TEMP_VALUE >= 815) { MFL_PARA_A.SLAVE_STATUS = 15; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(0, 0, "经典快灰:测试中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } } break; case 15: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if(MFL_PARA_A.TIME == 1170) Beep_Set (10, 10, 15); if(MFL_PARA_A.TIME >= 1200) { lcd_display_string(2, 0, "提示:按退出键继续试验 "); lcd_display_string(3, 0, "提示:按确认键检查灼烧 "); MFL_PARA_A.SLAVE_STATUS = 12; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } } break; case 12: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); } if((KEY_VALUE == 0x04)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 14; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(0, 0, "经典快灰:灼烧中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示: "); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } else if ((KEY_VALUE == 0x05)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MAIN_STATUS = 0x22; STATUS_NEW_FLAG = 0x01; SECOND_NUM = 0; while (SECOND_NUM < 190); } } break; default: break; } } else if (MAIN_STATUS == 0x27) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_kuaihuib (); Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.temp_drop_enable = 1; MFL_PARA_A.temp_drop_run_cycle = 0; MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { if (MFL_PARA_A.TEMP_VALUE >= (500)) { CtrlStove(0, 0, 40); lcd_display_string(0, 0, "快速快灰:降温中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请打开炉门 "); MFL_PARA_A.SLAVE_STATUS = 16; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } else { CtrlStove(1, 815, 40); lcd_display_string(0, 0, "快速快灰:请放样... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:放样后请按确认键 "); MFL_PARA_A.SLAVE_STATUS = 19; KEY_VALUE = 0xff; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } } break; case 16: { if (MFL_PARA_A.TEMP_VALUE < (500)) { Beep_Set (5, 5, 3); lcd_display_string(0, 0, "快速快灰:请放样... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:放样后请按确认键 "); MFL_PARA_A.SLAVE_STATUS = 19; KEY_VALUE = 0xff; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } } break; case 21: { if (MFL_PARA_A.TEMP_VALUE < (500)) { Beep_Set (5, 5, 3); lcd_display_string(0, 0, "快速快灰:请放样... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:放样后请按确认键 "); MFL_PARA_A.SLAVE_STATUS = 19; KEY_VALUE = 0xff; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } } break; case 19: { if (MFL_PARA_A.TEMP_VALUE >= (500)) { Beep_Set (5, 5, 3); CtrlStove(1, 500, 40); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.TIME_DELAY_NUM = 1800; MFL_PARA_A.SLAVE_STATUS = 20; KEY_VALUE = 0xff; } if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; CtrlStove(1, 815, 40); lcd_display_string(0, 0, "快速快灰:升温中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请打开烟囱并留门缝"); MFL_PARA_A.SLAVE_STATUS = 2; MFL_PARA_A.TEMP_DIS_START = MFL_PARA_A.TEMP_DIS; MFL_PARA_A.TEMP_DIS_END = MFL_PARA_A.PID_PARA[8][1]; MFL_PARA_A.TIME_KF_SET = MFL_PARA_A.PID_PARA[8][0]; MFL_PARA_A.TIME_KF_SET *= 60; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } } break; case 20: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (MFL_PARA_A.TIME_DELAY_NUM == 0) { MFL_PARA_A.TIME_DELAY_NUM = 0xffffffff; CtrlStove(0, 500, 40); } if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; CtrlStove(1, 815, 40); lcd_display_string(0, 0, "快速快灰:升温中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请打开烟囱并留门缝"); MFL_PARA_A.SLAVE_STATUS = 2; MFL_PARA_A.TEMP_DIS_START = MFL_PARA_A.TEMP_DIS; MFL_PARA_A.TEMP_DIS_END = MFL_PARA_A.PID_PARA[8][1]; MFL_PARA_A.TIME_KF_SET = MFL_PARA_A.PID_PARA[8][0]; MFL_PARA_A.TIME_KF_SET *= 60; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } } break; case 2: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (MFL_PARA_A.TEMP_VALUE < MFL_PARA_A.TEMP_DIS_END) { if (MFL_PARA_A.TEMP_VALUE > MFL_PARA_A.TEMP_DIS_START) { sum = MFL_PARA_A.TIME; sum *= MFL_PARA_A.PID_PARA[8][2]; sum /= 60; sum += MFL_PARA_A.TEMP_DIS_START; if (MFL_PARA_A.TEMP_VALUE > (u16)(sum)) Ai_CTRL.PID_SET_ALL = 1; else Ai_CTRL.PID_SET_ALL = 0xffff; } else { Ai_CTRL.PID_SET_ALL = 0xffff; } } else if (MFL_PARA_A.TEMP_VALUE < 814) { Ai_CTRL.PID_SET_ALL = 0; } if (MFL_PARA_A.TEMP_VALUE > 813) { MFL_PARA_A.SLAVE_STATUS = 113; Beep_Set (5, 5, 1); lcd_display_string(0, 0, "快速快灰:恒温中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请打开烟囱并留门缝"); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; Ai_CTRL.PID_SET_ALL = 0; } } break; case 113: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if(MFL_PARA_A.TIME >= MFL_PARA_A.TIME_KF_SET) { Beep_Set (5, 5, 6); lcd_display_string(0, 0, "快速快灰:试验完成 "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:试验结束,请取样 "); CtrlStove(0, 0, 40); MFL_PARA_A.SLAVE_STATUS = 21; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; } } break; default: break; } } else if (MAIN_STATUS == 0x23) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_huifa (); MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.temp_drop_enable = 1; MFL_PARA_A.temp_drop_run_cycle = 0; MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { CtrlStove(1, MFL_PARA_A . PID_PARA[5][0], 40); Ai_CTRL.SumErrLimit = 0; lcd_display_string(0, 0, "挥发状态:升温 "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请关闭烟囱 "); MFL_PARA_A.SLAVE_STATUS = 19; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; Ai_CTRL.PID_SET_ALL = 0xffff; } break; case 19: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if ((MFL_PARA_A.TEMP_VALUE >= MFL_PARA_A . PID_PARA[5][1])) { Ai_CTRL.PID_SET_ALL = 0; KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 10; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; } } break; case 10: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if ((MFL_PARA_A.TEMP_VALUE >= MFL_PARA_A . PID_PARA[5][2])) { Ai_CTRL.PID_SET_ALL = 0; lcd_display_string(0, 0, "挥发状态:恒温 "); Beep_Set (5, 5, 10); KEY_VALUE = 0xff; lcd_display_string(3, 0, "提示:放样后按确认键 "); lcd_display_string(2, 0, "进程时间:00-00-00 "); MFL_PARA_A.SLAVE_STATUS = 2; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; } } break; case 2: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); } if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_string(0, 0, "挥发状态:测试中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请关闭烟囱 "); MFL_PARA_A.SLAVE_STATUS = 16; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.Temp_Test_Min = 930; CtrlStove(1, 900, 40); Ai_CTRL.SumErrLimit = 0; Ai_CTRL.PID_SET_FLAG = 1; Ai_CTRL.PID_TEST_STATUS = 0; temp_dis_lcd(0, 8, Ai_CTRL.PID_TEST_STATUS); temp_dis_lcd(0, 10, Ai_CTRL.PID_SET_ALL); } } break; case 16: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.Temp_Test_Min > MFL_PARA_A.TEMP_VALUE) { MFL_PARA_A.Temp_Test_Min = MFL_PARA_A.TEMP_VALUE; MFL_PARA_A.Temp_Test_Time_Start = MFL_PARA_A.TIME; } if (MFL_PARA_A.Temp_Test_Min < MFL_PARA_A.TEMP_VALUE) { if (MFL_PARA_A.TEMP_VALUE < (900 - 10 * 2)) { HF_TEMP = (MFL_PARA_A.TEMP_VALUE + (MFL_PARA_A.TEMP_VALUE - MFL_PARA_A.Temp_Test_Min) * 10 / ((900 - 10 * 2) - MFL_PARA_A.Temp_Test_Min)); MFL_PARA_A.TEMP_VALUE_DISPLAY = (MFL_PARA_A.TEMP_VALUE + (MFL_PARA_A.TEMP_VALUE - MFL_PARA_A.Temp_Test_Min) * 10 / ((900 - 10 * 2) - MFL_PARA_A.Temp_Test_Min)); temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_VALUE_DISPLAY); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } else { HF_TEMP = (MFL_PARA_A.TEMP_VALUE + 900) / 2; MFL_PARA_A.TEMP_VALUE_DISPLAY = ((MFL_PARA_A.TEMP_VALUE + 900) / 2); temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_VALUE_DISPLAY); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } } else { MFL_PARA_A.TEMP_VALUE_DISPLAY = MFL_PARA_A.TEMP_DIS; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (Ai_CTRL.PID_SET_FLAG) { if (MFL_PARA_A.TIME < MFL_PARA_A . PID_PARA[7][0]) { Ai_CTRL.PID_SET_ALL = 1; Ai_CTRL.PWM_TIME_NUM = 0; Ai_CTRL.PID_TEST_STATUS = 1; temp_dis_lcd(0, 7, Ai_CTRL.PID_TEST_STATUS); temp_dis_lcd(0, 9, Ai_CTRL.PID_SET_ALL); } else if ((MFL_PARA_A.Temp_Test_Min >= MFL_PARA_A.TEMP_VALUE)) { Ai_CTRL.PID_SET_ALL = MFL_PARA_A . PID_PARA[1][0] + 2; Ai_CTRL.PID_TEST_STATUS = 2; temp_dis_lcd(0, 7, Ai_CTRL.PID_TEST_STATUS); temp_dis_lcd(0, 9, Ai_CTRL.PID_SET_ALL); } else if ((MFL_PARA_A.TEMP_VALUE_DISPLAY < MFL_PARA_A . PID_PARA[7][1])) { Ai_CTRL.PID_SET_ALL = MFL_PARA_A . PID_PARA[1][0] + 2; Ai_CTRL.PID_TEST_STATUS = 3; temp_dis_lcd(0, 7, Ai_CTRL.PID_TEST_STATUS); temp_dis_lcd(0, 9, Ai_CTRL.PID_SET_ALL); } else if ((MFL_PARA_A.TEMP_VALUE_DISPLAY < (MFL_PARA_A . PID_PARA[7][2]))) { Ai_CTRL.PID_SET_ALL = 1; Ai_CTRL.PWM_TIME_NUM = 0; Ai_CTRL.PID_TEST_STATUS = 4; temp_dis_lcd(0, 7, Ai_CTRL.PID_TEST_STATUS); temp_dis_lcd(0, 9, Ai_CTRL.PID_SET_ALL); } else { Ai_CTRL.PID_SET_FLAG = 0; Ai_CTRL.PID_SET_ALL = 0; Ai_CTRL.TIME_NUM = 0; CtrlStove(1, MFL_PARA_A . PID_PARA[1][1], 40); Ai_CTRL.SumErrLimit = 0; Ai_CTRL.PID_TEST_STATUS = 5; temp_dis_lcd(0, 7, Ai_CTRL.PID_TEST_STATUS); temp_dis_lcd(0, 9, Ai_CTRL.PID_SET_ALL); } } if (MFL_PARA_A.TIME == 180) { Beep_Set (1, 1, 1); } else if (MFL_PARA_A.TIME == 390) { Beep_Set (10, 10, 15); } else if (MFL_PARA_A.TIME >= 420) { Beep_Set (10, 10, 150); lcd_display_string(0, 0, "挥发状态:试验完成 "); lcd_display_string(3, 0, "提示:按确认键继续挥发分"); Ai_CTRL.PID_SET_ALL = 0; CtrlStove(1, 900, 40); MFL_PARA_A.SLAVE_STATUS = 7; } } } break; case 7: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (KEY_VALUE == 0x04) { Beep_Set (20, 10, 1); KEY_VALUE = 0xff; MAIN_STATUS = 0x23; STATUS_NEW_FLAG = 0x01; } } break; case 9: { CtrlStove(0, 0, 40); MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; } break; default: break; } } else if (MAIN_STATUS == 0x24) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_zixuan_a (); Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.TEMP_DIS_MH = MFL_PARA_A.TEMP_DIS; MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.PROGRAM_NUM = 0; } if (KEY_VALUE == 0x05) { Beep_Set (10, 10, 1); KEY_VALUE = 0xff; CtrlStove(0, 0, 40); Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { MFL_PARA_A.SLAVE_STATUS = 4; MFL_PARA_A.SLAVE_STATUS_NEW = 1; CtrlStove(1, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0], 40); Ai_CTRL.PID_SET_ALL = 0; lcd_post (0, 6); lcd_display (0xa2d9 + MFL_PARA_A.PROGRAM_NUM); if (MFL_PARA_A.TEMP_DIS < MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]) { lcd_display_string(3, 0, "提示:正在升温... "); MFL_PARA_A.TEMP_DIS_START = MFL_PARA_A.TEMP_DIS; MFL_PARA_A.TEMP_DIS_END = MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0] - MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][5]; MFL_PARA_A.TIME_KF_SET = MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][1]; MFL_PARA_A.TIME_KF_SET *= 60; MFL_PARA_A.TIME_KF_SET_BEEP = MFL_PARA_A.TIME_KF_SET - 30; MFL_PARA_A.TEMP_DIRECTION = 0; } else { lcd_display_string(3, 0, "提示:正在降温... "); MFL_PARA_A.TEMP_DIS_START = MFL_PARA_A.TEMP_DIS; MFL_PARA_A.TEMP_DIS_END = MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0] + MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][5]; MFL_PARA_A.TIME_KF_SET = MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][1]; MFL_PARA_A.TIME_KF_SET *= 60; MFL_PARA_A.TIME_KF_SET_BEEP = MFL_PARA_A.TIME_KF_SET - 30; MFL_PARA_A.TEMP_DIRECTION = 1; } temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); MFL_PARA_A.PROGRAM_TIME_SECOND = MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][1] * 60; time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; if (MFL_PARA_A.TEMP_DIRECTION == 0) { if (MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][2] == 0) MFL_PARA_A.SLAVE_STATUS = 1; else MFL_PARA_A.SLAVE_STATUS = 4; } else { MFL_PARA_A.SLAVE_STATUS = 6; } } break; case 4: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); temp_dis_lcd (1, 3, temp_value_filter_MH()); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display ('/'); lcd_display (0x20); lcd_display (0x20); temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); time_dis_lcd (2, 3, MFL_PARA_A.TIME); lcd_display ('/'); time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); } if (MFL_PARA_A.TEMP_DIS < MFL_PARA_A.TEMP_DIS_END) { if (MFL_PARA_A.TEMP_DIS > MFL_PARA_A.TEMP_DIS_START) { sum = MFL_PARA_A.TIME; sum *= MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][2]; sum /= 60; sum += MFL_PARA_A.TEMP_DIS_START; if (MFL_PARA_A.TEMP_DIS > (u16)(sum)) Ai_CTRL.PID_SET_ALL = 1; else Ai_CTRL.PID_SET_ALL = 0xffff; } else { Ai_CTRL.PID_SET_ALL = 0xffff; } } else { Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.SLAVE_STATUS = 1; } } break; case 1: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); temp_dis_lcd (1, 3, temp_value_filter_MH()); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display ('/'); lcd_display (0x20); lcd_display (0x20); temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); time_dis_lcd (2, 3, MFL_PARA_A.TIME); lcd_display ('/'); time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); } if (MFL_PARA_A.TEMP_DIS >= MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]) { MFL_PARA_A.SLAVE_STATUS = 2; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(3, 0, "提示:正在恒温... "); time_dis_lcd (2, 3, 0); Beep_Set (1, 1, 1); MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; } } break; case 6: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); temp_dis_lcd (1, 3, temp_value_filter_MH()); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display ('/'); lcd_display (0x20); lcd_display (0x20); temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); time_dis_lcd (2, 3, MFL_PARA_A.TIME); lcd_display ('/'); time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); } if (MFL_PARA_A.TEMP_DIS > MFL_PARA_A.TEMP_DIS_END) { Ai_CTRL.PID_SET_ALL = 1; } else { Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.SLAVE_STATUS = 5; } } break; case 5: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); temp_dis_lcd (1, 3, temp_value_filter_MH()); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display ('/'); lcd_display (0x20); lcd_display (0x20); temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); time_dis_lcd (2, 3, MFL_PARA_A.TIME); lcd_display ('/'); time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); } if (MFL_PARA_A.TEMP_DIS <= MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]) { MFL_PARA_A.SLAVE_STATUS = 2; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(3, 0, "提示:正在恒温... "); time_dis_lcd (2, 3, 0); Beep_Set (1, 1, 1); MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; } } break; case 2: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); MFL_PARA_A.TEMP_DIS_MH = temp_calc_value_MH(MFL_PARA_A.TEMP_DIS, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0], MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][4]); temp_dis_lcd (1, 3, MFL_PARA_A.TEMP_DIS_MH); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display ('/'); lcd_display (0x20); lcd_display (0x20); temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); time_dis_lcd (2, 3, MFL_PARA_A.TIME); lcd_display ('/'); time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); } if (MFL_PARA_A.TIME >= MFL_PARA_A.PROGRAM_TIME_SECOND) { if (MFL_PARA_A.PROGRAM_NUM < 9) { MFL_PARA_A.PROGRAM_NUM++; if ((MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0] != 0) && (MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][1] != 0)) { MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; } Beep_Set (10, 10, 1); } else { MFL_PARA_A.SLAVE_STATUS = 3; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(0, 0, "自选A组:全部结束 "); lcd_display_string(3, 0, "提示:按取消键退出 "); CtrlStove(0, 0, 40); Beep_Set (10, 10, 2); } } } break; case 3: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); temp_dis_lcd (1, 3, temp_value_filter_MH()); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); } if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; } } break; default: break; } } else if (MAIN_STATUS == 0x25) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_zixuan_b (); Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.TEMP_DIS_MH = MFL_PARA_A.TEMP_DIS; MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.PROGRAM_NUM = 0; } if (KEY_VALUE == 0x05) { Beep_Set (10, 10, 1); KEY_VALUE = 0xff; CtrlStove(0, 0, 40); Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { MFL_PARA_A.SLAVE_STATUS = 4; MFL_PARA_A.SLAVE_STATUS_NEW = 1; CtrlStove(1, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0], 40); Ai_CTRL.PID_SET_ALL = 0; lcd_post (0, 6); lcd_display (0xa2d9 + MFL_PARA_A.PROGRAM_NUM); if (MFL_PARA_A.TEMP_DIS < MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]) { lcd_display_string(3, 0, "提示:正在升温... "); MFL_PARA_A.TEMP_DIS_START = MFL_PARA_A.TEMP_DIS; MFL_PARA_A.TEMP_DIS_END = MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0] - MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][5]; MFL_PARA_A.TIME_KF_SET = MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][1]; MFL_PARA_A.TIME_KF_SET *= 60; MFL_PARA_A.TIME_KF_SET_BEEP = MFL_PARA_A.TIME_KF_SET - 30; MFL_PARA_A.TEMP_DIRECTION = 0; } else { lcd_display_string(3, 0, "提示:正在降温... "); MFL_PARA_A.TEMP_DIS_START = MFL_PARA_A.TEMP_DIS; MFL_PARA_A.TEMP_DIS_END = MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0] + MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][5]; MFL_PARA_A.TIME_KF_SET = MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][1]; MFL_PARA_A.TIME_KF_SET *= 60; MFL_PARA_A.TIME_KF_SET_BEEP = MFL_PARA_A.TIME_KF_SET - 30; MFL_PARA_A.TEMP_DIRECTION = 1; } temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); MFL_PARA_A.PROGRAM_TIME_SECOND = MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][1] * 60; time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME = 0; if (MFL_PARA_A.TEMP_DIRECTION == 0) { if (MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][2] == 0) MFL_PARA_A.SLAVE_STATUS = 1; else MFL_PARA_A.SLAVE_STATUS = 4; } else { MFL_PARA_A.SLAVE_STATUS = 6; } } break; case 4: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); temp_dis_lcd (1, 3, temp_value_filter_MH()); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display ('/'); lcd_display (0x20); lcd_display (0x20); temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); time_dis_lcd (2, 3, MFL_PARA_A.TIME); lcd_display ('/'); time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); } if (MFL_PARA_A.TEMP_DIS < MFL_PARA_A.TEMP_DIS_END) { if (MFL_PARA_A.TEMP_DIS > MFL_PARA_A.TEMP_DIS_START) { sum = MFL_PARA_A.TIME; sum *= MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][2]; sum /= 60; sum += MFL_PARA_A.TEMP_DIS_START; if (MFL_PARA_A.TEMP_DIS > (u16)(sum)) Ai_CTRL.PID_SET_ALL = 1; else Ai_CTRL.PID_SET_ALL = 0xffff; } else { Ai_CTRL.PID_SET_ALL = 0xffff; } } else { Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.SLAVE_STATUS = 1; } } break; case 1: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); temp_dis_lcd (1, 3, temp_value_filter_MH()); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display ('/'); lcd_display (0x20); lcd_display (0x20); temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); time_dis_lcd (2, 3, MFL_PARA_A.TIME); lcd_display ('/'); time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); } if (MFL_PARA_A.TEMP_DIS >= MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]) { MFL_PARA_A.SLAVE_STATUS = 2; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(3, 0, "提示:正在恒温... "); time_dis_lcd (2, 3, 0); Beep_Set (1, 1, 1); MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; } } break; case 6: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); temp_dis_lcd (1, 3, temp_value_filter_MH()); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display ('/'); lcd_display (0x20); lcd_display (0x20); temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); time_dis_lcd (2, 3, MFL_PARA_A.TIME); lcd_display ('/'); time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); } if (MFL_PARA_A.TEMP_DIS > MFL_PARA_A.TEMP_DIS_END) { Ai_CTRL.PID_SET_ALL = 1; } else { Ai_CTRL.PID_SET_ALL = 0; MFL_PARA_A.SLAVE_STATUS = 5; } } break; case 5: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); temp_dis_lcd (1, 3, temp_value_filter_MH()); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display ('/'); lcd_display (0x20); lcd_display (0x20); temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); time_dis_lcd (2, 3, MFL_PARA_A.TIME); lcd_display ('/'); time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); } if (MFL_PARA_A.TEMP_DIS <= MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]) { MFL_PARA_A.SLAVE_STATUS = 2; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(3, 0, "提示:正在恒温... "); time_dis_lcd (2, 3, 0); Beep_Set (1, 1, 1); MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; } } break; case 2: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); MFL_PARA_A.TEMP_DIS_MH = temp_calc_value_MH(MFL_PARA_A.TEMP_DIS, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0], MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][4]); temp_dis_lcd (1, 3, MFL_PARA_A.TEMP_DIS_MH); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display ('/'); lcd_display (0x20); lcd_display (0x20); temp_dis_lcd (1, 9, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]); lcd_display (0x20); lcd_display (0x20); time_dis_lcd (2, 3, MFL_PARA_A.TIME); lcd_display ('/'); time_dis_lcd (2, 8, MFL_PARA_A.PROGRAM_TIME_SECOND); } if (MFL_PARA_A.TIME >= MFL_PARA_A.PROGRAM_TIME_SECOND) { if (MFL_PARA_A.PROGRAM_NUM < 9) { MFL_PARA_A.PROGRAM_NUM++; if ((MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0] != 0) && (MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][1] != 0)) { MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; } Beep_Set (10, 10, 1); } else { MFL_PARA_A.SLAVE_STATUS = 3; MFL_PARA_A.SLAVE_STATUS_NEW = 1; lcd_display_string(0, 0, "自选B组:全部结束 "); lcd_display_string(3, 0, "提示:按取消键退出 "); CtrlStove(0, 0, 40); Beep_Set (10, 10, 2); } } } break; case 3: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.ZIXUAN_DEBUG_TEMP_EN) temp_dis_lcd (0, 8, MFL_PARA_A.TEMP_DIS); temp_dis_lcd (1, 3, temp_value_filter_MH()); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); lcd_display (0x20); } if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; } } break; default: break; } } else if (MAIN_STATUS == 0x28) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_reservation (); MFL_PARA_A.temp_drop_enable = 1; MFL_PARA_A.temp_drop_run_cycle = 0; pcf8563_read_time(2, 7, MENU_TIME_DATA); MENU_TIME_DATA_SET[0] = (u8)(MFL_PARA_A.YUYUE_TIME_SET >> 12) & 0x0f; MENU_TIME_DATA_SET[1] = (u8)(MFL_PARA_A.YUYUE_TIME_SET >> 8) & 0x0f; MENU_TIME_DATA_SET[2] = (u8)(MFL_PARA_A.YUYUE_TIME_SET >> 4) & 0x0f; MENU_TIME_DATA_SET[3] = (u8)(MFL_PARA_A.YUYUE_TIME_SET >> 0) & 0x0f; MENU_TIME_DATA_SET[4] = MFL_PARA_A.YUYUE_TEMP_SET / 100; MENU_TIME_DATA_SET[5] = (MFL_PARA_A.YUYUE_TEMP_SET - (u16)(MENU_TIME_DATA_SET[4]) * 100) / 10; MENU_TIME_DATA_SET[6] = (MFL_PARA_A.YUYUE_TEMP_SET - (u16)(MENU_TIME_DATA_SET[4]) * 100 - (u16)(MENU_TIME_DATA_SET[5]) * 10); MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.PROGRAM_NUM = 0; time_temp_dis_lcd (1, 5, MENU_TIME_DATA, MFL_PARA_A.TEMP_DIS); time_temp_set_lcd (2, 5, MENU_TIME_DATA_SET); lcd_display_black_one (2, MENU_TIME_DATA_SET_POST[MFL_PARA_A.PROGRAM_NUM] + 10, 1); } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { if ((KEY_VALUE == 0x00)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MENU_TIME_DATA_SET[MFL_PARA_A.PROGRAM_NUM]) MENU_TIME_DATA_SET[MFL_PARA_A.PROGRAM_NUM]--; else MENU_TIME_DATA_SET[MFL_PARA_A.PROGRAM_NUM] = 9; time_temp_set_lcd (2, 5, MENU_TIME_DATA_SET); } else if ((KEY_VALUE == 0x03)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MENU_TIME_DATA_SET[MFL_PARA_A.PROGRAM_NUM] < 9) MENU_TIME_DATA_SET[MFL_PARA_A.PROGRAM_NUM]++; else MENU_TIME_DATA_SET[MFL_PARA_A.PROGRAM_NUM] = 0; time_temp_set_lcd (2, 5, MENU_TIME_DATA_SET); } else if ((KEY_VALUE == 0x02)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black_one (2, MENU_TIME_DATA_SET_POST[MFL_PARA_A.PROGRAM_NUM] + 10, 0); if (MFL_PARA_A.PROGRAM_NUM) MFL_PARA_A.PROGRAM_NUM--; else MFL_PARA_A.PROGRAM_NUM = 6; lcd_display_black_one (2, MENU_TIME_DATA_SET_POST[MFL_PARA_A.PROGRAM_NUM] + 10, 1); } else if ((KEY_VALUE == 0x07)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black_one (2, MENU_TIME_DATA_SET_POST[MFL_PARA_A.PROGRAM_NUM] + 10, 0); if (MFL_PARA_A.PROGRAM_NUM < 6) MFL_PARA_A.PROGRAM_NUM++; else MFL_PARA_A.PROGRAM_NUM = 0; lcd_display_black_one (2, MENU_TIME_DATA_SET_POST[MFL_PARA_A.PROGRAM_NUM] + 10, 1); } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black_one (2, MENU_TIME_DATA_SET_POST[MFL_PARA_A.PROGRAM_NUM] + 10, 0); MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (((MENU_TIME_DATA_SET[0] * 10 + MENU_TIME_DATA_SET[1]) < 24) && ((MENU_TIME_DATA_SET[2] * 10 + MENU_TIME_DATA_SET[3]) < 60)) { MFL_PARA_A.YUYUE_TIME_SET = (u16)MENU_TIME_DATA_SET[0]; MFL_PARA_A.YUYUE_TIME_SET <<= 4; MFL_PARA_A.YUYUE_TIME_SET += (u16)MENU_TIME_DATA_SET[1]; MFL_PARA_A.YUYUE_TIME_SET <<= 4; MFL_PARA_A.YUYUE_TIME_SET += (u16)MENU_TIME_DATA_SET[2]; MFL_PARA_A.YUYUE_TIME_SET <<= 4; MFL_PARA_A.YUYUE_TIME_SET += (u16)MENU_TIME_DATA_SET[3]; MFL_PARA_A.YUYUE_TEMP_SET = (u16)MENU_TIME_DATA_SET[4]; MFL_PARA_A.YUYUE_TEMP_SET *= 10; MFL_PARA_A.YUYUE_TEMP_SET += (u16)MENU_TIME_DATA_SET[5]; MFL_PARA_A.YUYUE_TEMP_SET *= 10; MFL_PARA_A.YUYUE_TEMP_SET += (u16)MENU_TIME_DATA_SET[6]; x = 0; para_data_temp[x++] = (MFL_PARA_A.YUYUE_TIME_SET >> 8); para_data_temp[x++] = (MFL_PARA_A.YUYUE_TIME_SET & 0xff); para_data_temp[x++] = (MFL_PARA_A.YUYUE_TEMP_SET >> 8); para_data_temp[x++] = (MFL_PARA_A.YUYUE_TEMP_SET & 0xff); para_data_temp[31] = 0x55; n = 14; n <<= 5; eeprom_24c64_write (n, 32, para_data_temp); lcd_display_black_one (2, MENU_TIME_DATA_SET_POST[MFL_PARA_A.PROGRAM_NUM] + 10, 0); lcd_display_string(0, 0, "预约状态:等待时间 "); lcd_display_string(3, 0, "提示: "); MFL_PARA_A.SLAVE_STATUS = 6; } } } break; case 6: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; pcf8563_read_time(2, 7, MENU_TIME_DATA); time_temp_dis_lcd (1, 5, MENU_TIME_DATA, MFL_PARA_A.TEMP_DIS); temp = (u16)(MENU_TIME_DATA[2] & 0x3f); temp <<= 8; temp += (u16)(MENU_TIME_DATA[1] & 0x7f); if (MFL_PARA_A.YUYUE_TIME_SET == temp) { Beep_Set (5, 5, 3); if (MFL_PARA_A.TEMP_DIS >= MFL_PARA_A.YUYUE_TEMP_SET) { lcd_display_string(0, 0, "预约状态:预约结束 "); lcd_display_string(3, 0, "提示:预约结束请按确认键"); MFL_PARA_A.SLAVE_STATUS = 7; } else { lcd_display_string(0, 0, "预约状态:升温中... "); MFL_PARA_A.SLAVE_STATUS = 1; Ai_CTRL.PID_SET_ALL = 0xffff; } } } } break; case 1: { if (MFL_PARA_A.TEMP_DIS >= MFL_PARA_A.YUYUE_TEMP_SET) { lcd_display_string(0, 0, "预约状态:预约结束 "); lcd_display_string(3, 0, "提示:预约结束请按确认键"); Beep_Set (5, 5, 3); MFL_PARA_A.SLAVE_STATUS = 7; } if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; pcf8563_read_time(2, 7, MENU_TIME_DATA); time_temp_dis_lcd (1, 5, MENU_TIME_DATA, MFL_PARA_A.TEMP_DIS); } } break; case 7: { if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; } if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; pcf8563_read_time(2, 7, MENU_TIME_DATA); time_temp_dis_lcd (1, 5, MENU_TIME_DATA, MFL_PARA_A.TEMP_DIS); } if (MFL_PARA_A.TEMP_DIS >= MFL_PARA_A.YUYUE_TEMP_SET) Ai_CTRL.PID_SET_ALL = 1; else Ai_CTRL.PID_SET_ALL = 0xffff; } break; default: break; } } else if (MAIN_STATUS == 0x26) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_calibration (); MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.temp_drop_enable = 1; MFL_PARA_A.temp_drop_run_cycle = 0; MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; } if (KEY_VALUE == 0x05) { Beep_Set (10, 10, 1); KEY_VALUE = 0xff; CtrlStove(0, 0, 40); MFL_PARA_A.temp_drop_enable = 0; MFL_PARA_A.temp_drop_run_cycle = 0; MAIN_STATUS = 0x20; STATUS_NEW_FLAG = 0x01; } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { CtrlStove(1, 850, 40); Ai_CTRL.SumErrLimit = 0; lcd_display_string(0, 0, "罗加状态:升温 "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请关闭烟囱 "); MFL_PARA_A.SLAVE_STATUS = 1; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; } break; case 1: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (MFL_PARA_A.TEMP_VALUE >= 850) { lcd_display_string(0, 0, "罗加状态:恒温 "); Beep_Set (5, 5, 1); KEY_VALUE = 0xff; lcd_display_string(3, 0, "提示:放样后按确认键 "); lcd_display_string(2, 0, "进程时间:00-00-00 "); MFL_PARA_A.SLAVE_STATUS = 2; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; } } break; case 2: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); } if(KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_string(0, 0, "罗加状态:测试中... "); lcd_display_string(2, 0, "进程时间:00-00-00 "); lcd_display_string(3, 0, "提示:请关闭烟囱 "); MFL_PARA_A.SLAVE_STATUS = 6; MFL_PARA_A.TIME_NUM = 0; MFL_PARA_A.TIME_SEC_FLAG = 0; MFL_PARA_A.TIME = 0; MFL_PARA_A.Temp_Test_Min = 930; LJ_HUIWEN_STEP = 0; CtrlStove(1, 850, 40); Ai_CTRL.SumErrLimit = 0; Ai_CTRL.PID_SET_FLAG = 1; Ai_CTRL.PID_TEST_STATUS = 0; } } break; case 6: { if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; if (MFL_PARA_A.Temp_Test_Min > MFL_PARA_A.TEMP_VALUE) { MFL_PARA_A.Temp_Test_Min = MFL_PARA_A.TEMP_VALUE; MFL_PARA_A.Temp_Test_Time_Start = MFL_PARA_A.TIME; } if (MFL_PARA_A.Temp_Test_Min < MFL_PARA_A.TEMP_VALUE) { if (MFL_PARA_A.TEMP_VALUE < (850 - 10 * 2)) { HF_TEMP = (MFL_PARA_A.TEMP_VALUE + (MFL_PARA_A.TEMP_VALUE - MFL_PARA_A.Temp_Test_Min) * 10 / ((850 - 10 * 2) - MFL_PARA_A.Temp_Test_Min)); MFL_PARA_A.TEMP_VALUE_DISPLAY = (MFL_PARA_A.TEMP_VALUE + (MFL_PARA_A.TEMP_VALUE - MFL_PARA_A.Temp_Test_Min) * 10 / ((850 - 10 * 2) - MFL_PARA_A.Temp_Test_Min)); temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_VALUE_DISPLAY); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } else { HF_TEMP = (MFL_PARA_A.TEMP_VALUE + 850) / 2; MFL_PARA_A.TEMP_VALUE_DISPLAY = ((MFL_PARA_A.TEMP_VALUE + 850) / 2); temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_VALUE_DISPLAY); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } } else { MFL_PARA_A.TEMP_VALUE_DISPLAY = MFL_PARA_A.TEMP_DIS; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); time_dis_lcd (2, 5, MFL_PARA_A.TIME); lcd_display_time_space (); } if (Ai_CTRL.PID_SET_FLAG) { if (MFL_PARA_A.TIME < MFL_PARA_A . PID_PARA[6][0]) { Ai_CTRL.PID_SET_ALL = 1; Ai_CTRL.PWM_TIME_NUM = 0; Ai_CTRL.PID_TEST_STATUS = 1; } else if ((MFL_PARA_A.Temp_Test_Min >= MFL_PARA_A.TEMP_VALUE)) { Ai_CTRL.PID_SET_ALL = MFL_PARA_A . PID_PARA[1][0] + 2; Ai_CTRL.PID_TEST_STATUS = 2; } else if ((MFL_PARA_A.TEMP_VALUE_DISPLAY < MFL_PARA_A . PID_PARA[6][1])) { Ai_CTRL.PID_SET_ALL = MFL_PARA_A . PID_PARA[1][0] + 2; Ai_CTRL.PID_TEST_STATUS = 3; } else if ((MFL_PARA_A.TEMP_VALUE_DISPLAY < (MFL_PARA_A . PID_PARA[6][2]))) { Ai_CTRL.PID_SET_ALL = 1; Ai_CTRL.PWM_TIME_NUM = 0; Ai_CTRL.PID_TEST_STATUS = 4; } else { Ai_CTRL.PID_SET_FLAG = 0; Ai_CTRL.PID_SET_ALL = 0; Ai_CTRL.TIME_NUM = 0; CtrlStove(1, 850, 40); Ai_CTRL.SumErrLimit = 0; Ai_CTRL.PID_TEST_STATUS = 5; } } if (MFL_PARA_A.TIME == 360) { Beep_Set (10, 10, 1); } else if (MFL_PARA_A.TIME == 870) { Beep_Set (5, 5, 30); } else if (MFL_PARA_A.TIME >= 900) { Beep_Set (10, 10, 1); lcd_display_string(0, 0, "罗加状态:试验完成 "); lcd_display_string(3, 0, "提示:按确认键继续罗加 "); Ai_CTRL.PID_SET_ALL = 0; CtrlStove(1, 850, 40); MFL_PARA_A.SLAVE_STATUS = 4; } } } break; case 4: { if (KEY_VALUE == 0x04) { Beep_Set (20, 10, 1); KEY_VALUE = 0xff; MAIN_STATUS = 0x26; STATUS_NEW_FLAG = 0x01; } if (MFL_PARA_A.TIME_SEC_FLAG) { MFL_PARA_A.TIME_SEC_FLAG = 0; temp_dis_lcd (1, 5, MFL_PARA_A.TEMP_DIS); lcd_display_temp_space (); } } break; case 5: { MAIN_STATUS = 0x26; STATUS_NEW_FLAG = 0x01; } break; default: break; } } else if (MAIN_STATUS == 0x31) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_program_a_user (); MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.PROGRAM_NUM = 0; MFL_PARA_A.MENU_X = 0; temp_dis_lcd_4 (1, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 0][0]); temp_dis_lcd_4 (1, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 0][1]); temp_dis_lcd_4 (1, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 0][2]); temp_dis_lcd_4 (1, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 0][3]); temp_dis_lcd_4 (2, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 1][0]); temp_dis_lcd_4 (2, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 1][1]); temp_dis_lcd_4 (2, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 1][2]); temp_dis_lcd_4 (2, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 1][3]); temp_dis_lcd_4 (3, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 2][0]); temp_dis_lcd_4 (3, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 2][1]); temp_dis_lcd_4 (3, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 2][2]); temp_dis_lcd_4 (3, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM + 2][3]); lcd_display_black (1, 0, 6, 1); } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { if ((MFL_PARA_A.PROGRAM_NUM < 9) && (KEY_VALUE == 0x00)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.PROGRAM_NUM++; if (MFL_PARA_A.MENU_X < 2) { lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 0); MFL_PARA_A.MENU_X++; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 1); } lcd_display_string(1, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X]); temp_dis_lcd_4 (1, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][0]); temp_dis_lcd_4 (1, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][1]); temp_dis_lcd_4 (1, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][2]); temp_dis_lcd_4 (1, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][3]); lcd_display_string(2, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1]); temp_dis_lcd_4 (2, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][0]); temp_dis_lcd_4 (2, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][1]); temp_dis_lcd_4 (2, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][2]); temp_dis_lcd_4 (2, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][3]); lcd_display_string(3, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2]); temp_dis_lcd_4 (3, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][0]); temp_dis_lcd_4 (3, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][1]); temp_dis_lcd_4 (3, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][2]); temp_dis_lcd_4 (3, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][3]); } else if ((MFL_PARA_A.PROGRAM_NUM > 0) && (KEY_VALUE == 0x03)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.PROGRAM_NUM--; if (MFL_PARA_A.MENU_X > 0) { lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 0); MFL_PARA_A.MENU_X--; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 1); } lcd_display_string(1, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X]); temp_dis_lcd_4 (1, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][0]); temp_dis_lcd_4 (1, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][1]); temp_dis_lcd_4 (1, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][2]); temp_dis_lcd_4 (1, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][3]); lcd_display_string(2, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1]); temp_dis_lcd_4 (2, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][0]); temp_dis_lcd_4 (2, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][1]); temp_dis_lcd_4 (2, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][2]); temp_dis_lcd_4 (2, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][3]); lcd_display_string(3, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2]); temp_dis_lcd_4 (3, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][0]); temp_dis_lcd_4 (3, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][1]); temp_dis_lcd_4 (3, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][2]); temp_dis_lcd_4 (3, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][3]); } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 1; MFL_PARA_A.MENU_Y = 0; if (MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0] > 9999) { MFL_PARA_A.MENU_SET_INPUT_DATA[0] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[1] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[2] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[3] = '-'; } else { temp = MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]; MFL_PARA_A.MENU_SET_INPUT_DATA[0] = temp / 1000; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[0] * 1000; MFL_PARA_A.MENU_SET_INPUT_DATA[1] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[1] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[2] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[2] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[3] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[0] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[1] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[2] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[3] += 0x30; } if (MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][1] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[4] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[5] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[6] = '-'; } else { temp = MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][1]; MFL_PARA_A.MENU_SET_INPUT_DATA[4] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[4] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[5] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[5] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[6] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[4] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[5] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[6] += 0x30; } if (MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][2] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[7] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[8] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[9] = '-'; } else { temp = MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][2]; MFL_PARA_A.MENU_SET_INPUT_DATA[7] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[7] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[8] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[8] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[9] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[7] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[8] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[9] += 0x30; } if (MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][3] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[10] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[11] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[12] = '-'; } else { temp = MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][3]; MFL_PARA_A.MENU_SET_INPUT_DATA[10] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[10] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[11] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[11] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[12] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[10] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[11] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[12] += 0x30; } lcd_post (MFL_PARA_A.MENU_X + 1, 4); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[9]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[10]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[11]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[12]); lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 1); } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 2; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 0); menu_display_program_save (); } } break; case 1: { if (KEY_VALUE == 0x03) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] < 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]++; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; lcd_post (MFL_PARA_A.MENU_X + 1, 4); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[9]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[10]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[11]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[12]); } else if (KEY_VALUE == 0x00) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] > 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]--; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; lcd_post (MFL_PARA_A.MENU_X + 1, 4); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[9]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[10]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[11]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[12]); } else if (KEY_VALUE == 0x02) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y > 0)) { if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 0); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 0); MFL_PARA_A.MENU_Y--; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 1); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 1); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 1); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 1); } } else if (KEY_VALUE == 0x07) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y < 12)) { if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 0); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 0); MFL_PARA_A.MENU_Y++; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 1); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 1); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 1); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 1); } } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 0; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 0); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 0); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][1]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][2]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][3]); } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 0; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 0); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 0); for (temp = 0; temp < 13; temp++) MFL_PARA_A.MENU_SET_INPUT_DATA[temp] -= 0x30; MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0] = MFL_PARA_A.MENU_SET_INPUT_DATA[0] * 1000 + MFL_PARA_A.MENU_SET_INPUT_DATA[1] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[2] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[3]; MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][1] = MFL_PARA_A.MENU_SET_INPUT_DATA[4] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[5] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[6]; MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][2] = MFL_PARA_A.MENU_SET_INPUT_DATA[7] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[8] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[9]; MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][3] = MFL_PARA_A.MENU_SET_INPUT_DATA[10] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[11] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[12]; temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 4, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][0]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 6, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][1]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 8, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][2]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 10, MFL_PARA_A.ZIXUAN_A_PARA[MFL_PARA_A.PROGRAM_NUM][3]); } } break; case 2: { if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; n = 0; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 0; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 10; n++) { MFL_PARA_A.ZIXUAN_A_PARA[n][0] = (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_A_PARA[n][0] <<= 8; MFL_PARA_A.ZIXUAN_A_PARA[n][0] += (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_A_PARA[n][1] = (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_A_PARA[n][1] <<= 8; MFL_PARA_A.ZIXUAN_A_PARA[n][1] += (u16)para_data_temp[x++]; temp = (u16)para_data_temp[x++]; temp <<= 8; temp += (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_A_PARA[n][2] = temp / 1000; MFL_PARA_A.ZIXUAN_A_PARA[n][3] = temp % 1000; MFL_PARA_A.ZIXUAN_A_PARA[n][4] = MFL_PARA_A.ZIXUAN_A_PARA[n][3] / 100; MFL_PARA_A.ZIXUAN_A_PARA[n][5] = MFL_PARA_A.ZIXUAN_A_PARA[n][3] % 100; } } MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; x = 0; for (n = 0; n < 10; n++) { para_data_temp[x++] = MFL_PARA_A.ZIXUAN_A_PARA[n][0] >> 8; para_data_temp[x++] = MFL_PARA_A.ZIXUAN_A_PARA[n][0]; para_data_temp[x++] = MFL_PARA_A.ZIXUAN_A_PARA[n][1] >> 8; para_data_temp[x++] = MFL_PARA_A.ZIXUAN_A_PARA[n][1]; temp = MFL_PARA_A.ZIXUAN_A_PARA[n][2] * 1000; temp += MFL_PARA_A.ZIXUAN_A_PARA[n][3]; para_data_temp[x++] = temp >> 8; para_data_temp[x++] = temp; MFL_PARA_A.ZIXUAN_A_PARA[n][4] = MFL_PARA_A.ZIXUAN_A_PARA[n][3] / 100; MFL_PARA_A.ZIXUAN_A_PARA[n][5] = MFL_PARA_A.ZIXUAN_A_PARA[n][3] % 100; } para_data_temp[63] = 0x55; for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n]; n = 0; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n + 32]; n = 0; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } } break; default: break; } } else if (MAIN_STATUS == 0x32) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_program_b_user (); MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.PROGRAM_NUM = 0; MFL_PARA_A.MENU_X = 0; temp_dis_lcd_4 (1, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 0][0]); temp_dis_lcd_4 (1, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 0][1]); temp_dis_lcd_4 (1, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 0][2]); temp_dis_lcd_4 (1, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 0][3]); temp_dis_lcd_4 (2, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 1][0]); temp_dis_lcd_4 (2, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 1][1]); temp_dis_lcd_4 (2, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 1][2]); temp_dis_lcd_4 (2, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 1][3]); temp_dis_lcd_4 (3, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 2][0]); temp_dis_lcd_4 (3, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 2][1]); temp_dis_lcd_4 (3, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 2][2]); temp_dis_lcd_4 (3, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM + 2][3]); lcd_display_black (1, 0, 6, 1); } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { if ((MFL_PARA_A.PROGRAM_NUM < 9) && (KEY_VALUE == 0x00)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.PROGRAM_NUM++; if (MFL_PARA_A.MENU_X < 2) { lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 0); MFL_PARA_A.MENU_X++; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 1); } lcd_display_string(1, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X]); temp_dis_lcd_4 (1, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][0]); temp_dis_lcd_4 (1, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][1]); temp_dis_lcd_4 (1, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][2]); temp_dis_lcd_4 (1, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][3]); lcd_display_string(2, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1]); temp_dis_lcd_4 (2, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][0]); temp_dis_lcd_4 (2, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][1]); temp_dis_lcd_4 (2, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][2]); temp_dis_lcd_4 (2, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][3]); lcd_display_string(3, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2]); temp_dis_lcd_4 (3, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][0]); temp_dis_lcd_4 (3, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][1]); temp_dis_lcd_4 (3, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][2]); temp_dis_lcd_4 (3, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][3]); } else if ((MFL_PARA_A.PROGRAM_NUM > 0) && (KEY_VALUE == 0x03)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.PROGRAM_NUM--; if (MFL_PARA_A.MENU_X > 0) { lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 0); MFL_PARA_A.MENU_X--; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 1); } lcd_display_string(1, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X]); temp_dis_lcd_4 (1, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][0]); temp_dis_lcd_4 (1, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][1]); temp_dis_lcd_4 (1, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][2]); temp_dis_lcd_4 (1, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][3]); lcd_display_string(2, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1]); temp_dis_lcd_4 (2, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][0]); temp_dis_lcd_4 (2, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][1]); temp_dis_lcd_4 (2, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][2]); temp_dis_lcd_4 (2, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][3]); lcd_display_string(3, 0, menu_zixuan_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2]); temp_dis_lcd_4 (3, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][0]); temp_dis_lcd_4 (3, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][1]); temp_dis_lcd_4 (3, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][2]); temp_dis_lcd_4 (3, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][3]); } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 1; MFL_PARA_A.MENU_Y = 0; if (MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0] > 9999) { MFL_PARA_A.MENU_SET_INPUT_DATA[0] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[1] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[2] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[3] = '-'; } else { temp = MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]; MFL_PARA_A.MENU_SET_INPUT_DATA[0] = temp / 1000; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[0] * 1000; MFL_PARA_A.MENU_SET_INPUT_DATA[1] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[1] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[2] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[2] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[3] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[0] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[1] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[2] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[3] += 0x30; } if (MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][1] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[4] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[5] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[6] = '-'; } else { temp = MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][1]; MFL_PARA_A.MENU_SET_INPUT_DATA[4] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[4] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[5] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[5] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[6] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[4] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[5] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[6] += 0x30; } if (MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][2] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[7] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[8] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[9] = '-'; } else { temp = MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][2]; MFL_PARA_A.MENU_SET_INPUT_DATA[7] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[7] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[8] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[8] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[9] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[7] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[8] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[9] += 0x30; } if (MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][3] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[10] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[11] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[12] = '-'; } else { temp = MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][3]; MFL_PARA_A.MENU_SET_INPUT_DATA[10] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[10] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[11] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[11] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[12] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[10] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[11] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[12] += 0x30; } lcd_post (MFL_PARA_A.MENU_X + 1, 4); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[9]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[10]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[11]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[12]); lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 1); } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 2; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 0); menu_display_program_save (); } } break; case 1: { if (KEY_VALUE == 0x03) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] < 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]++; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; lcd_post (MFL_PARA_A.MENU_X + 1, 4); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[9]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[10]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[11]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[12]); } else if (KEY_VALUE == 0x00) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] > 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]--; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; lcd_post (MFL_PARA_A.MENU_X + 1, 4); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[9]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (0x20); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[10]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[11]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[12]); } else if (KEY_VALUE == 0x02) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y > 0)) { if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 0); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 0); MFL_PARA_A.MENU_Y--; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 1); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 1); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 1); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 1); } } else if (KEY_VALUE == 0x07) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y < 12)) { if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 0); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 0); MFL_PARA_A.MENU_Y++; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 1); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 1); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 1); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 1); } } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 0; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 0); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 0); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][1]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][2]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][3]); } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 0; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else if (MFL_PARA_A.MENU_Y < 7) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 9, 0); else if (MFL_PARA_A.MENU_Y < 10) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 10, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 11, 0); for (temp = 0; temp < 13; temp++) MFL_PARA_A.MENU_SET_INPUT_DATA[temp] -= 0x30; MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0] = MFL_PARA_A.MENU_SET_INPUT_DATA[0] * 1000 + MFL_PARA_A.MENU_SET_INPUT_DATA[1] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[2] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[3]; MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][1] = MFL_PARA_A.MENU_SET_INPUT_DATA[4] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[5] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[6]; MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][2] = MFL_PARA_A.MENU_SET_INPUT_DATA[7] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[8] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[9]; MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][3] = MFL_PARA_A.MENU_SET_INPUT_DATA[10] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[11] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[12]; temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 4, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][0]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 6, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][1]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 8, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][2]); temp_dis_lcd_4 (MFL_PARA_A.MENU_X + 1, 10, MFL_PARA_A.ZIXUAN_B_PARA[MFL_PARA_A.PROGRAM_NUM][3]); } } break; case 2: { if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; n = 2; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 2; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 10; n++) { MFL_PARA_A.ZIXUAN_B_PARA[n][0] = (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_B_PARA[n][0] <<= 8; MFL_PARA_A.ZIXUAN_B_PARA[n][0] += (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_B_PARA[n][1] = (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_B_PARA[n][1] <<= 8; MFL_PARA_A.ZIXUAN_B_PARA[n][1] += (u16)para_data_temp[x++]; temp = (u16)para_data_temp[x++]; temp <<= 8; temp += (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_B_PARA[n][2] = temp / 1000; MFL_PARA_A.ZIXUAN_B_PARA[n][3] = temp % 1000; MFL_PARA_A.ZIXUAN_B_PARA[n][4] = MFL_PARA_A.ZIXUAN_B_PARA[n][3] / 100; MFL_PARA_A.ZIXUAN_B_PARA[n][5] = MFL_PARA_A.ZIXUAN_B_PARA[n][3] % 100; } } MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; x = 0; for (n = 0; n < 10; n++) { para_data_temp[x++] = MFL_PARA_A.ZIXUAN_B_PARA[n][0] >> 8; para_data_temp[x++] = MFL_PARA_A.ZIXUAN_B_PARA[n][0]; para_data_temp[x++] = MFL_PARA_A.ZIXUAN_B_PARA[n][1] >> 8; para_data_temp[x++] = MFL_PARA_A.ZIXUAN_B_PARA[n][1]; temp = MFL_PARA_A.ZIXUAN_B_PARA[n][2] * 1000; temp += MFL_PARA_A.ZIXUAN_B_PARA[n][3]; para_data_temp[x++] = temp >> 8; para_data_temp[x++] = temp; MFL_PARA_A.ZIXUAN_B_PARA[n][4] = MFL_PARA_A.ZIXUAN_B_PARA[n][3] / 100; MFL_PARA_A.ZIXUAN_B_PARA[n][5] = MFL_PARA_A.ZIXUAN_B_PARA[n][3] % 100; } para_data_temp[63] = 0x55; for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n]; n = 2; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n + 32]; n = 2; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } } break; default: break; } } else if (MAIN_STATUS == 0x34) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_program_parameter (); MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.PROGRAM_NUM = 0; MFL_PARA_A.MENU_X = 0; temp_dis_lcd (1, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM + 0][0]); temp_dis_lcd (1, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM + 0][1]); temp_dis_lcd (2, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM + 1][0]); temp_dis_lcd (2, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM + 1][1]); temp_dis_lcd (3, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM + 2][0]); temp_dis_lcd (3, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM + 2][1]); lcd_display_black (1, 0, 6, 1); } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { if ((MFL_PARA_A.PROGRAM_NUM < 14) && (KEY_VALUE == 0x00)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.PROGRAM_NUM++; if (MFL_PARA_A.MENU_X < 2) { lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 0); MFL_PARA_A.MENU_X++; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 1); } lcd_post (1, 1); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1) / 10 + 0x30); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1) % 10 + 0x30); temp_dis_lcd (1, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][0]); temp_dis_lcd (1, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][1]); lcd_post (2, 1); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2) / 10 + 0x30); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2) % 10 + 0x30); temp_dis_lcd (2, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][0]); temp_dis_lcd (2, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][1]); lcd_post (3, 1); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 3) / 10 + 0x30); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 3) % 10 + 0x30); temp_dis_lcd (3, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][0]); temp_dis_lcd (3, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][1]); } else if ((MFL_PARA_A.PROGRAM_NUM > 0) && (KEY_VALUE == 0x03)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.PROGRAM_NUM--; if (MFL_PARA_A.MENU_X > 0) { lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 0); MFL_PARA_A.MENU_X--; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 1); } lcd_post (1, 1); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1) / 10 + 0x30); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1) % 10 + 0x30); temp_dis_lcd (1, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][0]); temp_dis_lcd (1, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][1]); lcd_post (2, 1); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2) / 10 + 0x30); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2) % 10 + 0x30); temp_dis_lcd (2, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][0]); temp_dis_lcd (2, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][1]); lcd_post (3, 1); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 3) / 10 + 0x30); lcd_display ((MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 3) % 10 + 0x30); temp_dis_lcd (3, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][0]); temp_dis_lcd (3, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][1]); } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 1; MFL_PARA_A.MENU_Y = 0; temp_n = MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM][0]; temp_a = temp_n / 1000; temp_n -= temp_a * 1000; temp_b = temp_n / 100; temp_n -= temp_b * 100; temp_c = temp_n / 10; temp_n -= temp_c * 10; temp_d = temp_n; MFL_PARA_A.MENU_SET_INPUT_DATA[0] = temp_a + 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[1] = temp_b + 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[2] = temp_c + 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[3] = temp_d + 0x30; temp_n = MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM][1]; temp_a = temp_n / 1000; temp_n -= temp_a * 1000; temp_b = temp_n / 100; temp_n -= temp_b * 100; temp_c = temp_n / 10; temp_n -= temp_c * 10; temp_d = temp_n; MFL_PARA_A.MENU_SET_INPUT_DATA[4] = temp_a + 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[5] = temp_b + 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[6] = temp_c + 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[7] = temp_d + 0x30; lcd_post (MFL_PARA_A.MENU_X + 1, 4); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 1); } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 2; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 6, 0); menu_display_program_save (); } } break; case 1: { if (KEY_VALUE == 0x03) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] < 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]++; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; lcd_post (MFL_PARA_A.MENU_X + 1, 4); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); } else if (KEY_VALUE == 0x00) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] > 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]--; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; lcd_post (MFL_PARA_A.MENU_X + 1, 4); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); } else if (KEY_VALUE == 0x02) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y > 0)) { if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); MFL_PARA_A.MENU_Y--; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 1); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 1); } } else if (KEY_VALUE == 0x07) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y < 7)) { if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); MFL_PARA_A.MENU_Y++; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 1); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 1); } } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 0; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); temp_dis_lcd (MFL_PARA_A.MENU_X + 1, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM][0]); temp_dis_lcd (MFL_PARA_A.MENU_X + 1, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM][1]); } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 0; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 8, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); for (temp = 0; temp < 8; temp++) MFL_PARA_A.MENU_SET_INPUT_DATA[temp] -= 0x30; temp = MFL_PARA_A.MENU_SET_INPUT_DATA[0] * 1000 + MFL_PARA_A.MENU_SET_INPUT_DATA[1] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[2] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[3]; if (temp < 1000) MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM][0] = temp; temp = MFL_PARA_A.MENU_SET_INPUT_DATA[4] * 1000 + MFL_PARA_A.MENU_SET_INPUT_DATA[5] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[6] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[7]; if (temp < 1000) MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM][1] = temp; temp_dis_lcd (MFL_PARA_A.MENU_X + 1, 4, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM][0]); temp_dis_lcd (MFL_PARA_A.MENU_X + 1, 8, MFL_PARA_A.CALIBRATION[MFL_PARA_A.PROGRAM_NUM][1]); } } break; case 2: { if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; n = 4; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 4; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 15; n++) { MFL_PARA_A.CALIBRATION[n][0] = (u16)para_data_temp[x++]; MFL_PARA_A.CALIBRATION[n][0] <<= 8; MFL_PARA_A.CALIBRATION[n][0] += (u16)para_data_temp[x++]; MFL_PARA_A.CALIBRATION[n][1] = (u16)para_data_temp[x++]; MFL_PARA_A.CALIBRATION[n][1] <<= 8; MFL_PARA_A.CALIBRATION[n][1] += (u16)para_data_temp[x++]; } } MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; x = 0; for (n = 0; n < 15; n++) { para_data_temp[x++] = MFL_PARA_A.CALIBRATION[n][0] >> 8; para_data_temp[x++] = MFL_PARA_A.CALIBRATION[n][0]; para_data_temp[x++] = MFL_PARA_A.CALIBRATION[n][1] >> 8; para_data_temp[x++] = MFL_PARA_A.CALIBRATION[n][1]; } para_data_temp[63] = 0x55; for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n]; n = 4; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n + 32]; n = 4; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } } break; default: break; } } else if (MAIN_STATUS == 0x35) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_program_pid (); MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.PROGRAM_NUM = 0; MFL_PARA_A.MENU_X = 0; temp_dis_lcd_3 (1, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM + 0][0]); temp_dis_lcd_3 (1, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM + 0][1]); temp_dis_lcd_3 (1, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM + 0][2]); temp_dis_lcd_3 (2, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM + 1][0]); temp_dis_lcd_3 (2, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM + 1][1]); temp_dis_lcd_3 (2, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM + 1][2]); temp_dis_lcd_3 (3, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM + 2][0]); temp_dis_lcd_3 (3, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM + 2][1]); temp_dis_lcd_3 (3, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM + 2][2]); lcd_display_black (1, 0, 10, 1); } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { if ((MFL_PARA_A.PROGRAM_NUM < 9) && (KEY_VALUE == 0x00)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.PROGRAM_NUM++; if (MFL_PARA_A.MENU_X < 2) { lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 10, 0); MFL_PARA_A.MENU_X++; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 10, 1); } lcd_display_string(1, 0, menu_temp_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X]); temp_dis_lcd_3 (1, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][0]); temp_dis_lcd_3 (1, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][1]); temp_dis_lcd_3 (1, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][2]); lcd_display_string(2, 0, menu_temp_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1]); temp_dis_lcd_3 (2, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][0]); temp_dis_lcd_3 (2, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][1]); temp_dis_lcd_3 (2, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][2]); lcd_display_string(3, 0, menu_temp_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2]); temp_dis_lcd_3 (3, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][0]); temp_dis_lcd_3 (3, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][1]); temp_dis_lcd_3 (3, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][2]); } else if ((MFL_PARA_A.PROGRAM_NUM > 0) && (KEY_VALUE == 0x03)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.PROGRAM_NUM--; if (MFL_PARA_A.MENU_X > 0) { lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 10, 0); MFL_PARA_A.MENU_X--; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 10, 1); } lcd_display_string(1, 0, menu_temp_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X]); temp_dis_lcd_3 (1, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][0]); temp_dis_lcd_3 (1, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][1]); temp_dis_lcd_3 (1, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][2]); lcd_display_string(2, 0, menu_temp_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1]); temp_dis_lcd_3 (2, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][0]); temp_dis_lcd_3 (2, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][1]); temp_dis_lcd_3 (2, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][2]); lcd_display_string(3, 0, menu_temp_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2]); temp_dis_lcd_3 (3, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][0]); temp_dis_lcd_3 (3, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][1]); temp_dis_lcd_3 (3, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][2]); } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 1; MFL_PARA_A.MENU_Y = 0; if (MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][0] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[0] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[1] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[2] = '-'; } else { temp = MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][0]; MFL_PARA_A.MENU_SET_INPUT_DATA[0] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[0] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[1] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[1] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[2] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[0] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[1] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[2] += 0x30; } if (MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][1] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[3] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[4] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[5] = '-'; } else { temp = MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][1]; MFL_PARA_A.MENU_SET_INPUT_DATA[3] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[3] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[4] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[4] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[5] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[3] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[4] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[5] += 0x30; } if (MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][2] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[6] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[7] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[8] = '-'; } else { temp = MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][2]; MFL_PARA_A.MENU_SET_INPUT_DATA[6] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[6] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[7] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[7] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[8] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[6] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[7] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[8] += 0x30; } lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 1); } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 2; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 10, 0); menu_display_program_save (); } } break; case 1: { if (KEY_VALUE == 0x03) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] < 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]++; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); } else if (KEY_VALUE == 0x00) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] > 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]--; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); } else if (KEY_VALUE == 0x02) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y > 0)) { if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 0); MFL_PARA_A.MENU_Y--; if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 1); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 1); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 1); } } else if (KEY_VALUE == 0x07) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y < 8)) { if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 0); MFL_PARA_A.MENU_Y++; if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 1); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 1); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 1); } } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 0; if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 0); temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][0]); temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][1]); temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][2]); } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 0; if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 0); for (temp = 0; temp < 9; temp++) MFL_PARA_A.MENU_SET_INPUT_DATA[temp] -= 0x30; MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][0] = MFL_PARA_A.MENU_SET_INPUT_DATA[0] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[1] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[2]; MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][1] = MFL_PARA_A.MENU_SET_INPUT_DATA[3] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[4] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[5]; MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][2] = MFL_PARA_A.MENU_SET_INPUT_DATA[6] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[7] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[8]; temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 6, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][0]); temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 8, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][1]); temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 10, MFL_PARA_A.PID_PARA[MFL_PARA_A.PROGRAM_NUM][2]); } } break; case 2: { if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; n = 6; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 6; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 10; n++) { MFL_PARA_A.PID_PARA[n][0] = (u16)para_data_temp[x++]; MFL_PARA_A.PID_PARA[n][0] <<= 8; MFL_PARA_A.PID_PARA[n][0] += (u16)para_data_temp[x++]; MFL_PARA_A.PID_PARA[n][1] = (u16)para_data_temp[x++]; MFL_PARA_A.PID_PARA[n][1] <<= 8; MFL_PARA_A.PID_PARA[n][1] += (u16)para_data_temp[x++]; MFL_PARA_A.PID_PARA[n][2] = (u16)para_data_temp[x++]; MFL_PARA_A.PID_PARA[n][2] <<= 8; MFL_PARA_A.PID_PARA[n][2] += (u16)para_data_temp[x++]; } } MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; x = 0; for (n = 0; n < 10; n++) { para_data_temp[x++] = MFL_PARA_A.PID_PARA[n][0] >> 8; para_data_temp[x++] = MFL_PARA_A.PID_PARA[n][0]; para_data_temp[x++] = MFL_PARA_A.PID_PARA[n][1] >> 8; para_data_temp[x++] = MFL_PARA_A.PID_PARA[n][1]; para_data_temp[x++] = MFL_PARA_A.PID_PARA[n][2] >> 8; para_data_temp[x++] = MFL_PARA_A.PID_PARA[n][2]; } para_data_temp[63] = 0x55; for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n]; n = 6; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n + 32]; n = 6; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } } break; default: break; } } else if (MAIN_STATUS == 0x33) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_program_user (); MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.PROGRAM_NUM = 0; MFL_PARA_A.MENU_X = 0; pcf8563_read_time(2, 7, MENU_TIME_DATA); MENU_TIME_DATA_DIS[0] = (MENU_TIME_DATA[6] & 0xff) >> 4; MENU_TIME_DATA_DIS[1] = (MENU_TIME_DATA[6] & 0xff) & 0x0f; MENU_TIME_DATA_DIS[2] = (MENU_TIME_DATA[5] & 0x1f) >> 4; MENU_TIME_DATA_DIS[3] = (MENU_TIME_DATA[5] & 0x1f) & 0x0f; MENU_TIME_DATA_DIS[4] = (MENU_TIME_DATA[3] & 0x3f) >> 4; MENU_TIME_DATA_DIS[5] = (MENU_TIME_DATA[3] & 0x3f) & 0x0f; MENU_TIME_DATA_DIS[6] = (MENU_TIME_DATA[2] & 0x3f) >> 4; MENU_TIME_DATA_DIS[7] = (MENU_TIME_DATA[2] & 0x3f) & 0x0f; MENU_TIME_DATA_DIS[8] = (MENU_TIME_DATA[1] & 0x7f) >> 4; MENU_TIME_DATA_DIS[9] = (MENU_TIME_DATA[1] & 0x7f) & 0x0f; MENU_TIME_DATA_DIS[10] = (MENU_TIME_DATA[0] & 0x7f) >> 4; MENU_TIME_DATA_DIS[11] = (MENU_TIME_DATA[0] & 0x7f) & 0x0f; time_set_dis_lcd (1, 2, MENU_TIME_DATA_DIS); lcd_display_black_one (1, MENU_TIME_DATA_DIS_POST[MFL_PARA_A.PROGRAM_NUM] + 4, 1); } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { if ((KEY_VALUE == 0x00)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MENU_TIME_DATA_DIS[MFL_PARA_A.PROGRAM_NUM]) MENU_TIME_DATA_DIS[MFL_PARA_A.PROGRAM_NUM]--; else MENU_TIME_DATA_DIS[MFL_PARA_A.PROGRAM_NUM] = 9; time_set_dis_lcd (1, 2, MENU_TIME_DATA_DIS); } else if ((KEY_VALUE == 0x03)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MENU_TIME_DATA_DIS[MFL_PARA_A.PROGRAM_NUM] < 9) MENU_TIME_DATA_DIS[MFL_PARA_A.PROGRAM_NUM]++; else MENU_TIME_DATA_DIS[MFL_PARA_A.PROGRAM_NUM] = 0; time_set_dis_lcd (1, 2, MENU_TIME_DATA_DIS); } else if ((KEY_VALUE == 0x02)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black_one (1, MENU_TIME_DATA_DIS_POST[MFL_PARA_A.PROGRAM_NUM] + 4, 0); if (MFL_PARA_A.PROGRAM_NUM) MFL_PARA_A.PROGRAM_NUM--; else MFL_PARA_A.PROGRAM_NUM = 11; lcd_display_black_one (1, MENU_TIME_DATA_DIS_POST[MFL_PARA_A.PROGRAM_NUM] + 4, 1); } else if ((KEY_VALUE == 0x07)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; lcd_display_black_one (1, MENU_TIME_DATA_DIS_POST[MFL_PARA_A.PROGRAM_NUM] + 4, 0); if (MFL_PARA_A.PROGRAM_NUM < 11) MFL_PARA_A.PROGRAM_NUM++; else MFL_PARA_A.PROGRAM_NUM = 0; lcd_display_black_one (1, MENU_TIME_DATA_DIS_POST[MFL_PARA_A.PROGRAM_NUM] + 4, 1); } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 2; lcd_display_black_one (1, MENU_TIME_DATA_DIS_POST[MFL_PARA_A.PROGRAM_NUM] + 4, 0); menu_display_program_save (); } } break; case 2: { if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MENU_TIME_DATA[6] = (MENU_TIME_DATA_DIS[0] << 4) + MENU_TIME_DATA_DIS[1]; MENU_TIME_DATA[5] = (MENU_TIME_DATA_DIS[2] << 4) + MENU_TIME_DATA_DIS[3]; MENU_TIME_DATA[3] = (MENU_TIME_DATA_DIS[4] << 4) + MENU_TIME_DATA_DIS[5]; MENU_TIME_DATA[2] = (MENU_TIME_DATA_DIS[6] << 4) + MENU_TIME_DATA_DIS[7]; MENU_TIME_DATA[1] = (MENU_TIME_DATA_DIS[8] << 4) + MENU_TIME_DATA_DIS[9]; MENU_TIME_DATA[0] = (MENU_TIME_DATA_DIS[10] << 4) + MENU_TIME_DATA_DIS[11]; pcf8563_write_time(2, 7, MENU_TIME_DATA); MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } } break; default: break; } } else if (MAIN_STATUS == 0x36) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_program_system (); MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.PROGRAM_NUM = 0; MFL_PARA_A.MENU_X = 0; temp_dis_lcd_3 (1, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM + 0][0]); temp_dis_lcd_3 (1, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM + 0][1]); temp_dis_lcd_3 (1, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM + 0][2]); temp_dis_lcd_3 (2, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM + 1][0]); temp_dis_lcd_3 (2, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM + 1][1]); temp_dis_lcd_3 (2, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM + 1][2]); temp_dis_lcd_3 (3, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM + 2][0]); temp_dis_lcd_3 (3, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM + 2][1]); temp_dis_lcd_3 (3, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM + 2][2]); lcd_display_black (1, 0, 10, 1); } switch(MFL_PARA_A.SLAVE_STATUS) { case 0: { if ((MFL_PARA_A.PROGRAM_NUM < 9) && (KEY_VALUE == 0x00)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.PROGRAM_NUM++; if (MFL_PARA_A.MENU_X < 2) { lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 10, 0); MFL_PARA_A.MENU_X++; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 10, 1); } lcd_display_string(1, 0, menu_program_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X]); temp_dis_lcd_3 (1, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][0]); temp_dis_lcd_3 (1, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][1]); temp_dis_lcd_3 (1, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][2]); lcd_display_string(2, 0, menu_program_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1]); temp_dis_lcd_3 (2, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][0]); temp_dis_lcd_3 (2, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][1]); temp_dis_lcd_3 (2, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][2]); lcd_display_string(3, 0, menu_program_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2]); temp_dis_lcd_3 (3, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][0]); temp_dis_lcd_3 (3, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][1]); temp_dis_lcd_3 (3, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][2]); } else if ((MFL_PARA_A.PROGRAM_NUM > 0) && (KEY_VALUE == 0x03)) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.PROGRAM_NUM--; if (MFL_PARA_A.MENU_X > 0) { lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 10, 0); MFL_PARA_A.MENU_X--; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 10, 1); } lcd_display_string(1, 0, menu_program_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X]); temp_dis_lcd_3 (1, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][0]); temp_dis_lcd_3 (1, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][1]); temp_dis_lcd_3 (1, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 0][2]); lcd_display_string(2, 0, menu_program_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1]); temp_dis_lcd_3 (2, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][0]); temp_dis_lcd_3 (2, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][1]); temp_dis_lcd_3 (2, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 1][2]); lcd_display_string(3, 0, menu_program_para_string_init_data[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2]); temp_dis_lcd_3 (3, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][0]); temp_dis_lcd_3 (3, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][1]); temp_dis_lcd_3 (3, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM - MFL_PARA_A.MENU_X + 2][2]); } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 1; MFL_PARA_A.MENU_Y = 0; if (MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][0] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[0] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[1] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[2] = '-'; } else { temp = MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][0]; MFL_PARA_A.MENU_SET_INPUT_DATA[0] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[0] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[1] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[1] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[2] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[0] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[1] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[2] += 0x30; } if (MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][1] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[3] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[4] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[5] = '-'; } else { temp = MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][1]; MFL_PARA_A.MENU_SET_INPUT_DATA[3] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[3] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[4] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[4] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[5] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[3] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[4] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[5] += 0x30; } if (MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][2] > 999) { MFL_PARA_A.MENU_SET_INPUT_DATA[6] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[7] = '-'; MFL_PARA_A.MENU_SET_INPUT_DATA[8] = '-'; } else { temp = MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][2]; MFL_PARA_A.MENU_SET_INPUT_DATA[6] = temp / 100; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[6] * 100; MFL_PARA_A.MENU_SET_INPUT_DATA[7] = temp / 10; temp -= MFL_PARA_A.MENU_SET_INPUT_DATA[7] * 10; MFL_PARA_A.MENU_SET_INPUT_DATA[8] = temp; MFL_PARA_A.MENU_SET_INPUT_DATA[6] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[7] += 0x30; MFL_PARA_A.MENU_SET_INPUT_DATA[8] += 0x30; } lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 1); } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 2; lcd_display_black (MFL_PARA_A.MENU_X + 1, 0, 10, 0); menu_display_program_save (); } } break; case 1: { if (KEY_VALUE == 0x03) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] < 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]++; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); } else if (KEY_VALUE == 0x00) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] > 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]--; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; lcd_post (MFL_PARA_A.MENU_X + 1, 6); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_post (MFL_PARA_A.MENU_X + 1, 8); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[4]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[5]); lcd_post (MFL_PARA_A.MENU_X + 1, 10); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[6]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[7]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[8]); } else if (KEY_VALUE == 0x02) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y > 0)) { if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 0); MFL_PARA_A.MENU_Y--; if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 1); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 1); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 1); } } else if (KEY_VALUE == 0x07) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y < 8)) { if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 0); MFL_PARA_A.MENU_Y++; if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 1); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 1); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 1); } } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 0; if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 0); temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][0]); temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][1]); temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][2]); } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MFL_PARA_A.SLAVE_STATUS = 0; if (MFL_PARA_A.MENU_Y < 3) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 12, 0); else if (MFL_PARA_A.MENU_Y < 6) lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 13, 0); else lcd_display_black_one (MFL_PARA_A.MENU_X + 1, MFL_PARA_A.MENU_Y + 14, 0); for (temp = 0; temp < 9; temp++) MFL_PARA_A.MENU_SET_INPUT_DATA[temp] -= 0x30; MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][0] = MFL_PARA_A.MENU_SET_INPUT_DATA[0] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[1] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[2]; MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][1] = MFL_PARA_A.MENU_SET_INPUT_DATA[3] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[4] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[5]; MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][2] = MFL_PARA_A.MENU_SET_INPUT_DATA[6] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[7] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[8]; temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 6, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][0]); temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 8, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][1]); temp_dis_lcd_3 (MFL_PARA_A.MENU_X + 1, 10, MFL_PARA_A.EQUIPMENT_PARA[MFL_PARA_A.PROGRAM_NUM][2]); } } break; case 2: { if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; n = 8; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 8; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 10; n++) { MFL_PARA_A.EQUIPMENT_PARA[n][0] = (u16)para_data_temp[x++]; MFL_PARA_A.EQUIPMENT_PARA[n][0] <<= 8; MFL_PARA_A.EQUIPMENT_PARA[n][0] += (u16)para_data_temp[x++]; MFL_PARA_A.EQUIPMENT_PARA[n][1] = (u16)para_data_temp[x++]; MFL_PARA_A.EQUIPMENT_PARA[n][1] <<= 8; MFL_PARA_A.EQUIPMENT_PARA[n][1] += (u16)para_data_temp[x++]; MFL_PARA_A.EQUIPMENT_PARA[n][2] = (u16)para_data_temp[x++]; MFL_PARA_A.EQUIPMENT_PARA[n][2] <<= 8; MFL_PARA_A.EQUIPMENT_PARA[n][2] += (u16)para_data_temp[x++]; } } MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } else if (KEY_VALUE == 0x04) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; x = 0; for (n = 0; n < 10; n++) { para_data_temp[x++] = MFL_PARA_A.EQUIPMENT_PARA[n][0] >> 8; para_data_temp[x++] = MFL_PARA_A.EQUIPMENT_PARA[n][0]; para_data_temp[x++] = MFL_PARA_A.EQUIPMENT_PARA[n][1] >> 8; para_data_temp[x++] = MFL_PARA_A.EQUIPMENT_PARA[n][1]; para_data_temp[x++] = MFL_PARA_A.EQUIPMENT_PARA[n][2] >> 8; para_data_temp[x++] = MFL_PARA_A.EQUIPMENT_PARA[n][2]; } para_data_temp[63] = 0x55; for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n]; n = 8; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n + 32]; n = 8; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } } break; default: break; } } else if (MAIN_STATUS == 0x41) { if (STATUS_NEW_FLAG) { STATUS_NEW_FLAG = 0x00; menu_display_program_password (); MFL_PARA_A.SLAVE_STATUS = 0; MFL_PARA_A.SLAVE_STATUS_NEW = 1; MFL_PARA_A.MENU_Y = 0; for (temp = 0; temp < 4; temp++) MFL_PARA_A.MENU_SET_INPUT_DATA[temp] = 0x30; lcd_display_black_one (1, MFL_PARA_A.MENU_Y + 12, 1); } if (KEY_VALUE == 0x03) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] < 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]++; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x39) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x30; lcd_post (1, 6); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); } else if (KEY_VALUE == 0x00) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x20) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] > 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y]--; else if (MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] == 0x30) MFL_PARA_A.MENU_SET_INPUT_DATA[MFL_PARA_A.MENU_Y] = 0x39; lcd_post (1, 6); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[0]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[1]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[2]); lcd_display (MFL_PARA_A.MENU_SET_INPUT_DATA[3]); } else if (KEY_VALUE == 0x02) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y > 0)) { if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (1, MFL_PARA_A.MENU_Y + 12, 0); MFL_PARA_A.MENU_Y--; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (1, MFL_PARA_A.MENU_Y + 12, 1); } } else if (KEY_VALUE == 0x07) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; if ((MFL_PARA_A.MENU_Y < 3)) { if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (1, MFL_PARA_A.MENU_Y + 12, 0); MFL_PARA_A.MENU_Y++; if (MFL_PARA_A.MENU_Y < 4) lcd_display_black_one (1, MFL_PARA_A.MENU_Y + 12, 1); } } else if (KEY_VALUE == 0x05) { Beep_Set (1, 1, 1); KEY_VALUE = 0xff; MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; lcd_display_black_one (1, MFL_PARA_A.MENU_Y + 12, 0); } else if (KEY_VALUE == 0x04) { lcd_display_black_one (1, MFL_PARA_A.MENU_Y + 12, 0); Beep_Set (1, 1, 1); KEY_VALUE = 0xff; for (temp = 0; temp < 8; temp++) MFL_PARA_A.MENU_SET_INPUT_DATA[temp] -= 0x30; temp = MFL_PARA_A.MENU_SET_INPUT_DATA[0] * 1000 + MFL_PARA_A.MENU_SET_INPUT_DATA[1] * 100 + MFL_PARA_A.MENU_SET_INPUT_DATA[2] * 10 + MFL_PARA_A.MENU_SET_INPUT_DATA[3]; if (temp == 5200) { MAIN_STATUS = MAIN_STATUS_BACK; STATUS_NEW_FLAG = 0x01; } else { MAIN_STATUS = 0x30; STATUS_NEW_FLAG = 0x01; } } } } } void system_init (void) { ChipHalInit (); lcd_init (); MFL_PARA_A.TEMP_VALUE_SET = 0; MAIN_STATUS = 0x10; STATUS_NEW_FLAG = 0x01; AD_READ_NUM = 0; ads1220_Initialization (); data_base_init (); RELAY_DELAY_EN = 1; GPIO_SetBits(((GPIO_TypeDef *) ((((uint32_t)0x40000000) + 0x10000) + 0x1000)), ((uint16_t)0x0040)); } void data_base_init (void) { u16 x, n, temp; u8 eeprom_data_temp[32]; u8 para_data_temp[64]; u32 sum; n = 0; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 0; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 10; n++) { MFL_PARA_A.ZIXUAN_A_PARA[n][0] = (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_A_PARA[n][0] <<= 8; MFL_PARA_A.ZIXUAN_A_PARA[n][0] += (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_A_PARA[n][1] = (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_A_PARA[n][1] <<= 8; MFL_PARA_A.ZIXUAN_A_PARA[n][1] += (u16)para_data_temp[x++]; temp = (u16)para_data_temp[x++]; temp <<= 8; temp += (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_A_PARA[n][2] = temp / 1000; MFL_PARA_A.ZIXUAN_A_PARA[n][3] = temp % 1000; MFL_PARA_A.ZIXUAN_A_PARA[n][4] = MFL_PARA_A.ZIXUAN_A_PARA[n][3] / 100; MFL_PARA_A.ZIXUAN_A_PARA[n][5] = MFL_PARA_A.ZIXUAN_A_PARA[n][3] % 100; } } else { for (n = 0; n < 10; n++) { MFL_PARA_A.ZIXUAN_A_PARA[n][0] = MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 0]; MFL_PARA_A.ZIXUAN_A_PARA[n][1] = MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 1]; MFL_PARA_A.ZIXUAN_A_PARA[n][2] = MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 2]; MFL_PARA_A.ZIXUAN_A_PARA[n][3] = MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 3]; } } n = 2; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 2; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 10; n++) { MFL_PARA_A.ZIXUAN_B_PARA[n][0] = (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_B_PARA[n][0] <<= 8; MFL_PARA_A.ZIXUAN_B_PARA[n][0] += (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_B_PARA[n][1] = (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_B_PARA[n][1] <<= 8; MFL_PARA_A.ZIXUAN_B_PARA[n][1] += (u16)para_data_temp[x++]; temp = (u16)para_data_temp[x++]; temp <<= 8; temp += (u16)para_data_temp[x++]; MFL_PARA_A.ZIXUAN_B_PARA[n][2] = temp / 1000; MFL_PARA_A.ZIXUAN_B_PARA[n][3] = temp % 1000; MFL_PARA_A.ZIXUAN_B_PARA[n][4] = MFL_PARA_A.ZIXUAN_B_PARA[n][3] / 100; MFL_PARA_A.ZIXUAN_B_PARA[n][5] = MFL_PARA_A.ZIXUAN_B_PARA[n][3] % 100; } } else { for (n = 0; n < 10; n++) { MFL_PARA_A.ZIXUAN_B_PARA[n][0] = MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 0]; MFL_PARA_A.ZIXUAN_B_PARA[n][1] = MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 1]; MFL_PARA_A.ZIXUAN_B_PARA[n][2] = MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 2]; MFL_PARA_A.ZIXUAN_B_PARA[n][3] = MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 3]; } } n = 4; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 4; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 15; n++) { MFL_PARA_A.CALIBRATION[n][0] = (u16)para_data_temp[x++]; MFL_PARA_A.CALIBRATION[n][0] <<= 8; MFL_PARA_A.CALIBRATION[n][0] += (u16)para_data_temp[x++]; MFL_PARA_A.CALIBRATION[n][1] = (u16)para_data_temp[x++]; MFL_PARA_A.CALIBRATION[n][1] <<= 8; MFL_PARA_A.CALIBRATION[n][1] += (u16)para_data_temp[x++]; } } else { for (n = 0; n < 15; n++) { MFL_PARA_A.CALIBRATION[n][0] = MFL_CALIBRATION_INIT_DATA[n * 2 + 0]; MFL_PARA_A.CALIBRATION[n][1] = MFL_CALIBRATION_INIT_DATA[n * 2 + 1]; } } n = 6; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 6; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 10; n++) { MFL_PARA_A.PID_PARA[n][0] = (u16)para_data_temp[x++]; MFL_PARA_A.PID_PARA[n][0] <<= 8; MFL_PARA_A.PID_PARA[n][0] += (u16)para_data_temp[x++]; MFL_PARA_A.PID_PARA[n][1] = (u16)para_data_temp[x++]; MFL_PARA_A.PID_PARA[n][1] <<= 8; MFL_PARA_A.PID_PARA[n][1] += (u16)para_data_temp[x++]; MFL_PARA_A.PID_PARA[n][2] = (u16)para_data_temp[x++]; MFL_PARA_A.PID_PARA[n][2] <<= 8; MFL_PARA_A.PID_PARA[n][2] += (u16)para_data_temp[x++]; } } else { for (n = 0; n < 10; n++) { MFL_PARA_A.PID_PARA[n][0] = MFL_PID_INIT_DATA[n * 3 + 0]; MFL_PARA_A.PID_PARA[n][1] = MFL_PID_INIT_DATA[n * 3 + 1]; MFL_PARA_A.PID_PARA[n][2] = MFL_PID_INIT_DATA[n * 3 + 2]; } } n = 10; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 10; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 4; n++) { MFL_PARA_A.USER_DATA[n] = (u16)para_data_temp[x++]; MFL_PARA_A.USER_DATA[n] <<= 8; MFL_PARA_A.USER_DATA[n] += (u16)para_data_temp[x++]; } } else { for (n = 0; n < 4; n++) { MFL_PARA_A.USER_DATA[n] = MFL_USER_INIT_DATA[n]; } } n = 8; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n] = eeprom_data_temp[n]; n = 8; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) para_data_temp[n + 32] = eeprom_data_temp[n]; if (para_data_temp[63] == 0x55) { x = 0; for (n = 0; n < 10; n++) { MFL_PARA_A.EQUIPMENT_PARA[n][0] = (u16)para_data_temp[x++]; MFL_PARA_A.EQUIPMENT_PARA[n][0] <<= 8; MFL_PARA_A.EQUIPMENT_PARA[n][0] += (u16)para_data_temp[x++]; MFL_PARA_A.EQUIPMENT_PARA[n][1] = (u16)para_data_temp[x++]; MFL_PARA_A.EQUIPMENT_PARA[n][1] <<= 8; MFL_PARA_A.EQUIPMENT_PARA[n][1] += (u16)para_data_temp[x++]; MFL_PARA_A.EQUIPMENT_PARA[n][2] = (u16)para_data_temp[x++]; MFL_PARA_A.EQUIPMENT_PARA[n][2] <<= 8; MFL_PARA_A.EQUIPMENT_PARA[n][2] += (u16)para_data_temp[x++]; } } else { for (n = 0; n < 10; n++) { MFL_PARA_A.EQUIPMENT_PARA[n][0] = MFL_EQUIPMENT_INIT_DATA[n * 3 + 0]; MFL_PARA_A.EQUIPMENT_PARA[n][1] = MFL_EQUIPMENT_INIT_DATA[n * 3 + 1]; MFL_PARA_A.EQUIPMENT_PARA[n][2] = MFL_EQUIPMENT_INIT_DATA[n * 3 + 2]; } } n = 12; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); x = 0; if (eeprom_data_temp[31] == 0x55) { MFL_PARA_A.ads1220_ch23_init_data = (u32)eeprom_data_temp[x++]; MFL_PARA_A.ads1220_ch23_init_data <<= 8; MFL_PARA_A.ads1220_ch23_init_data += (u32)eeprom_data_temp[x++]; MFL_PARA_A.ads1220_ch23_init_data <<= 8; MFL_PARA_A.ads1220_ch23_init_data += (u32)eeprom_data_temp[x++]; MFL_PARA_A.ads1220_ch23_init_data <<= 8; MFL_PARA_A.ads1220_ch23_init_data += (u32)eeprom_data_temp[x++]; MFL_PARA_A.board_temp_init_data = eeprom_data_temp[x++]; if (MFL_PARA_A.board_temp_init_data > 199) MFL_PARA_A.board_temp_init_data = 199; } else { MFL_PARA_A.ads1220_ch23_init_data = 0x800000; MFL_PARA_A.board_temp_init_data = 100; } n = 14; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); x = 0; if (eeprom_data_temp[31] == 0x55) { MFL_PARA_A.YUYUE_TIME_SET = (u16)eeprom_data_temp[x++]; MFL_PARA_A.YUYUE_TIME_SET <<= 8; MFL_PARA_A.YUYUE_TIME_SET += (u16)eeprom_data_temp[x++]; if (MFL_PARA_A.YUYUE_TIME_SET >= 0x2400) MFL_PARA_A.YUYUE_TIME_SET = 0x800; MFL_PARA_A.YUYUE_TEMP_SET = (u16)eeprom_data_temp[x++]; MFL_PARA_A.YUYUE_TEMP_SET <<= 8; MFL_PARA_A.YUYUE_TEMP_SET += (u16)eeprom_data_temp[x++]; if (MFL_PARA_A.YUYUE_TEMP_SET > 999) MFL_PARA_A.YUYUE_TEMP_SET = 920; } else { MFL_PARA_A.YUYUE_TIME_SET = 0x800; MFL_PARA_A.YUYUE_TEMP_SET = 920; } MFL_PARA_A.menu_select_post = eeprom_24c64_read_byte(512); n = 32; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); if (eeprom_data_temp[31] == 0x55) { TEST_VOLTAGE_MAX = (u16)eeprom_data_temp[7]; TEST_VOLTAGE_MAX <<= 8; TEST_VOLTAGE_MAX += (u16)eeprom_data_temp[8]; } else { TEST_VOLTAGE_MAX = 0; } n = 33; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); if (eeprom_data_temp[31] == 0x55) { TEST_VOLTAGE_MIN = (u16)eeprom_data_temp[7]; TEST_VOLTAGE_MIN <<= 8; TEST_VOLTAGE_MIN += (u16)eeprom_data_temp[8]; } else { TEST_VOLTAGE_MIN = 0xFFFF; } n = 34; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); if (eeprom_data_temp[31] == 0x55) { TEST_CURRENT_MAX = (u16)eeprom_data_temp[9]; TEST_CURRENT_MAX <<= 8; TEST_CURRENT_MAX += (u16)eeprom_data_temp[10]; } else { TEST_CURRENT_MAX = 0; } n = 35; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); if (eeprom_data_temp[31] == 0x55) { TEST_CURRENT_MIN = (u16)eeprom_data_temp[9]; TEST_CURRENT_MIN <<= 8; TEST_CURRENT_MIN += (u16)eeprom_data_temp[10]; } else { TEST_VOLTAGE_MIN = 0xFFFF; } } u32 temp_calc_value_MH (u32 temp, u32 target_temp, u32 meihua_range) { u32 a; a = temp; if ((meihua_range > 0) && (meihua_range < 10)) { if (temp > target_temp) { a = (temp - target_temp) / meihua_range; a += target_temp; } else { a = (target_temp - temp) / meihua_range; a = target_temp - a; } } return a; } u32 temp_value_filter_MH (void) { if (MFL_PARA_A.TEMP_DIS_MH < MFL_PARA_A.TEMP_DIS) MFL_PARA_A.TEMP_DIS_MH++; else if (MFL_PARA_A.TEMP_DIS_MH > MFL_PARA_A.TEMP_DIS) MFL_PARA_A.TEMP_DIS_MH--; return MFL_PARA_A.TEMP_DIS_MH; } void temp_dis_lcd (u8 x, u8 y, u32 temp) { u32 z, a; u8 flag; flag = 0; a = temp; lcd_post (x, y); z = a / 1000; if ((z == 0) && (flag == 0)) { if (MFL_PARA_A.temp_bipolar_flag == 0) lcd_display (' '); else lcd_display ('-'); } else { lcd_display (z + 0x30); flag = 1; } a -= z * 1000; z = a / 100; if ((z == 0) && (flag == 0)) { lcd_display (' '); } else { lcd_display (z + 0x30); flag = 1; } a -= z * 100; z = a / 10; if ((z == 0) && (flag == 0)) { lcd_display (' '); } else { lcd_display (z + 0x30); flag = 1; } a -= z * 10; z = a; lcd_display (z + 0x30); } void temp_dis_lcd_3 (u8 x, u8 y, u32 temp) { u32 z, a, b, c; u8 flag; flag = 0; z = temp; lcd_post (x, y); if (z > 999) { lcd_display ('-'); lcd_display ('-'); lcd_display ('-'); } else { a = z / 100; z -= a * 100; b = z / 10; z -= b * 10; c = z; if (a == 0) { a = 0x20; if (b == 0) b = 0x20; else b += 0x30; } else { a += 0x30; b += 0x30; } c += 0x30; lcd_display (a); lcd_display (b); lcd_display (c); } } void temp_dis_lcd_4 (u8 x, u8 y, u32 temp) { u32 z, a, b, c, d; u8 flag; flag = 0; z = temp; lcd_post (x, y); if (z > 9999) { lcd_display ('-'); lcd_display ('-'); lcd_display ('-'); lcd_display ('-'); } else { a = z / 1000; z -= a * 1000; b = z / 100; z -= b * 100; c = z / 10; z -= c * 10; d = z; if (a == 0) { a = 0x20; if (b == 0) { b = 0x20; if (c == 0) c = 0x20; else c += 0x30; } else { b += 0x30; c += 0x30; } } else { a += 0x30; b += 0x30; c += 0x30; } d += 0x30; lcd_display (a); lcd_display (b); lcd_display (c); lcd_display (d); } } void time_dis_lcd (u8 x, u8 y, u32 temp) { u32 z; lcd_post (x, y); z = temp / 36000; lcd_display (z + 0x30); temp -= z * 36000; z = temp / 3600; lcd_display (z + 0x30); temp -= z * 3600; lcd_display ('-'); z = temp / 600; lcd_display (z + 0x30); temp -= z * 600; z = temp / 60; lcd_display (z + 0x30); temp -= z * 60; lcd_display ('-'); z = temp / 10; lcd_display (z + 0x30); temp -= z * 10; z = temp; lcd_display (z + 0x30); } void time_temp_dis_lcd (u8 x, u8 y, u8 *p, u16 temp) { u32 z; u16 a, b, c, d; lcd_post (x, y); lcd_display ((((*(p + 2)) >> 4) & 0x03) + 0x30); lcd_display (((*(p + 2)) & 0x0f) + 0x30); lcd_display (':'); lcd_display ((((*(p + 1)) >> 4) & 0x07) + 0x30); lcd_display (((*(p + 1)) & 0x0f) + 0x30); lcd_display (' '); lcd_display ('/'); a = temp; if (a > 999) a = 999; b = a / 100; a -= b * 100; c = a / 10; a -= c * 10; d = a; lcd_display (' '); if (b == 0) lcd_display (' '); else lcd_display (b + 0x30); if ((b == 0) && (c == 0)) lcd_display (' '); else lcd_display (c + 0x30); lcd_display (d + 0x30); } void time_temp_set_lcd (u8 x, u8 y, u8 *p) { lcd_post (x, y); lcd_display (*(p + 0) + 0x30); lcd_display (*(p + 1) + 0x30); lcd_display (':'); lcd_display (*(p + 2) + 0x30); lcd_display (*(p + 3) + 0x30); lcd_display (' '); lcd_display ('/'); lcd_display (' '); lcd_display (*(p + 4) + 0x30); lcd_display (*(p + 5) + 0x30); lcd_display (*(p + 6) + 0x30); } void time_set_dis_lcd (u8 x, u8 y, u8 *p) { lcd_post (x, y); lcd_display (*(p + 0) + 0x30); lcd_display (*(p + 1) + 0x30); lcd_display ('-'); lcd_display (*(p + 2) + 0x30); lcd_display (*(p + 3) + 0x30); lcd_display ('-'); lcd_display (*(p + 4) + 0x30); lcd_display (*(p + 5) + 0x30); lcd_display (' '); lcd_display (*(p + 6) + 0x30); lcd_display (*(p + 7) + 0x30); lcd_display (':'); lcd_display (*(p + 8) + 0x30); lcd_display (*(p + 9) + 0x30); lcd_display (':'); lcd_display (*(p + 10) + 0x30); lcd_display (*(p + 11) + 0x30); } void MoveStove (u8 post) { MFL_PARA_A.MOVE_TIME_SEC_FLAG = 0; MFL_PARA_A.MOVE_TIME = 0; MFL_PARA_A.MOVE_TIME_SET = 0xffff; if (post == 1) { if (MFL_PARA_A.POST_OPEN == 0) { MFL_PARA_A.RELAY_DELAY_EN = 1; MFL_PARA_A.RELAY_DELAY = 40; } } else if (post == 4) { if (MFL_PARA_A.POST_CLOSE == 0) { MFL_PARA_A.RELAY_DELAY_EN = 1; MFL_PARA_A.RELAY_DELAY = 40; } } MFL_PARA_A.POST_SET = post; } void MoveStove_Time (u16 time) { MFL_PARA_A.RELAY_DELAY_EN = 1; MFL_PARA_A.RELAY_DELAY = 40; MFL_PARA_A.MOVE_TIME_SEC_FLAG = 0; MFL_PARA_A.MOVE_TIME = 0; MFL_PARA_A.POST_SET = 0; MFL_PARA_A.MOVE_TIME_SET = time; } void Bresenham_Temp_Calibrate (void) { u16 x1, y1, x2, y2, n, z; if (MFL_PARA_A.CALIBRATION[0][0] == 0) { for (n = 0; n < 1373; n++) MFL_PARA_A.CALIBRATION_TEMP[n] = n; } else { x1 = 0; x2 = MFL_PARA_A.CALIBRATION[0][0]; y1 = 0; y2 = MFL_PARA_A.CALIBRATION[0][1]; for (n = x1; n < x2; n++) { if (x2 != x1) MFL_PARA_A.CALIBRATION_TEMP[n] = (y2 - y1) * (n - x1) / (x2 - x1) + y1; } for (z = 0; z < 14; z++) { if ((MFL_PARA_A.CALIBRATION[z][0] == 0) || (MFL_PARA_A.CALIBRATION[z][1] == 0)) break; else { x1 = MFL_PARA_A.CALIBRATION[z][0]; x2 = MFL_PARA_A.CALIBRATION[z + 1][0]; y1 = MFL_PARA_A.CALIBRATION[z][1]; y2 = MFL_PARA_A.CALIBRATION[z + 1][1]; for (n = x1; n < x2; n++) { if (x2 != x1) MFL_PARA_A.CALIBRATION_TEMP[n] = (y2 - y1) * (n - x1) / (x2 - x1) + y1; } } } for (; n < 1373; n++) { if (x2 != x1) MFL_PARA_A.CALIBRATION_TEMP[n] = (y2 - y1) * (n - x1) / (x2 - x1) + y1; } } } void test_moter (void) { u8 a, b, c, d; u8 status; lcd_display_string(0, 0, "关门:0 "); lcd_display_string(1, 0, "门缝:0 "); lcd_display_string(2, 0, "半开:0 "); lcd_display_string(3, 0, "开门:0 "); a = 0; b = 0; c = 0; d = 0; MFL_PARA_A.POST_SET = 0; while (1) { if (MFL_PARA_A.POST_CLOSE != a) { a = MFL_PARA_A.POST_CLOSE; lcd_post (0, 3); lcd_display (a + 0x30); } if (MFL_PARA_A.POST_GAP != b) { b = MFL_PARA_A.POST_GAP; lcd_post (1, 3); lcd_display (b + 0x30); } if (MFL_PARA_A.POST_HALF != c) { c = MFL_PARA_A.POST_HALF; lcd_post (2, 3); lcd_display (c + 0x30); } if (MFL_PARA_A.POST_OPEN != d) { d = MFL_PARA_A.POST_OPEN; lcd_post (3, 3); lcd_display (d + 0x30); } if (KEY_VALUE == 0x02) { if (status == 0) { MFL_PARA_A.RELAY_DELAY_EN = 1; MFL_PARA_A.RELAY_DELAY = 40; status = 1; } } else if (KEY_VALUE == 0x07) { if (status == 0) { MFL_PARA_A.RELAY_DELAY_EN = 1; MFL_PARA_A.RELAY_DELAY = 40; status = 1; } } else if (KEY_VALUE == 0xff) { status = 0; } } } void test_post (void) { while (1) { if (KEY_VALUE == 0x02) { KEY_VALUE = 0xff; if (MFL_PARA_A.POST_CLOSE != 1) { MFL_PARA_A.POST_SET = 4; MFL_PARA_A.RELAY_DELAY_EN = 1; MFL_PARA_A.RELAY_DELAY = 40; } } else if (KEY_VALUE == 0x07) { KEY_VALUE = 0xff; if (MFL_PARA_A.POST_GAP != 1) { MFL_PARA_A.POST_SET = 2; MFL_PARA_A.RELAY_DELAY_EN = 1; MFL_PARA_A.RELAY_DELAY = 40; } } } } void Beep_Set (u16 x, u16 y, u16 num) { BEEP_HIGH_TIME = x * 20; BEEP_NUM = num; BEEP_CYC_TIME = BEEP_HIGH_TIME + y * 20; BEEP_CYC_TIME_NUM = 0; } void power_detect_data_display (u8 x, u8 y, u16 address) { u16 a, b, c, temp, n; u8 eeprom_data_temp[32]; n = address; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); lcd_post (x, y); if (eeprom_data_temp[31] == 0x55) { lcd_display (':'); lcd_display (((eeprom_data_temp[6] & 0xff) >> 4) + 0x30); lcd_display (((eeprom_data_temp[6] & 0xff) & 0x0f) + 0x30); lcd_display (((eeprom_data_temp[5] & 0x1f) >> 4) + 0x30); lcd_display (((eeprom_data_temp[5] & 0x1f) & 0x0f) + 0x30); lcd_display (((eeprom_data_temp[3] & 0x3f) >> 4) + 0x30); lcd_display (((eeprom_data_temp[3] & 0x3f) & 0x0f) + 0x30); lcd_display (((eeprom_data_temp[2] & 0x3f) >> 4) + 0x30); lcd_display (((eeprom_data_temp[2] & 0x3f) & 0x0f) + 0x30); lcd_display (((eeprom_data_temp[1] & 0x7f) >> 4) + 0x30); lcd_display (((eeprom_data_temp[1] & 0x7f) & 0x0f) + 0x30); lcd_display (((eeprom_data_temp[0] & 0x7f) >> 4) + 0x30); lcd_display (((eeprom_data_temp[0] & 0x7f) & 0x0f) + 0x30); lcd_display ('-'); temp = (u16)(eeprom_data_temp[7]); temp <<= 8; temp += (u16)(eeprom_data_temp[8]); temp /= 10; a = temp / 100; temp -= a * 100; b = temp / 10; temp -= b * 10; c = temp; lcd_display (a + 0x30); lcd_display (b + 0x30); lcd_display (c + 0x30); lcd_display ('V'); temp = (u16)(eeprom_data_temp[9]); temp <<= 8; temp += (u16)(eeprom_data_temp[10]); temp /= 10; a = temp / 100; temp -= a * 100; b = temp / 10; temp -= b * 10; c = temp; lcd_display (a + 0x30); lcd_display (b + 0x30); lcd_display (c + 0x30); lcd_display ('A'); } else { lcd_display_string(x, y, ":************-***V***A"); } } void power_detect_data_save (u16 address, u16 voltage, u16 current, u8 *date_temp) { u16 n; u8 eeprom_data_temp[32]; n = 0; eeprom_data_temp[n] = *(date_temp + n); n++; eeprom_data_temp[n] = *(date_temp + n); n++; eeprom_data_temp[n] = *(date_temp + n); n++; eeprom_data_temp[n] = *(date_temp + n); n++; eeprom_data_temp[n] = *(date_temp + n); n++; eeprom_data_temp[n] = *(date_temp + n); n++; eeprom_data_temp[n] = *(date_temp + n); n++; eeprom_data_temp[n++] = (u8)(voltage >> 8); eeprom_data_temp[n++] = (u8)(voltage); eeprom_data_temp[n++] = (u8)(current >> 8); eeprom_data_temp[n++] = (u8)(current); eeprom_data_temp[31] = 0x55; n = address; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); } void power_detect_data_reset (u16 address) { u16 n; u8 eeprom_data_temp[32]; for (n = 0; n < 32; n++) eeprom_data_temp[n] = 0; n = address; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); } void system_para_data_reset (void) { u16 x, n; u8 eeprom_data_temp[32]; u8 para_data_temp[64]; x = 0; for (n = 0; n < 10; n++) { para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4] >> 8); para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4]); para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 1] >> 8); para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 1]); para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 2]); para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 3]); } para_data_temp[63] = 0x55; for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n]; n = 0; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n + 32]; n = 0; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); x = 0; for (n = 0; n < 10; n++) { para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4] >> 8); para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4]); para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 1] >> 8); para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 1]); para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 2]); para_data_temp[x++] = (u8)(MFL_ZIXUAN_PROGRAM_INIT_DATA[n * 4 + 3]); } para_data_temp[63] = 0x55; for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n]; n = 2; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n + 32]; n = 2; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); x = 0; for (n = 0; n < 30; n++) { para_data_temp[x++] = MFL_CALIBRATION_INIT_DATA[n] >> 8; para_data_temp[x++] = MFL_CALIBRATION_INIT_DATA[n]; } para_data_temp[63] = 0x55; for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n]; n = 4; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n + 32]; n = 4; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); x = 0; for (n = 0; n < 30; n++) { para_data_temp[x++] = MFL_PID_INIT_DATA[n] >> 8; para_data_temp[x++] = MFL_PID_INIT_DATA[n]; } para_data_temp[63] = 0x55; for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n]; n = 6; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n + 32]; n = 6; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); x = 0; for (n = 0; n < 30; n++) { para_data_temp[x++] = MFL_EQUIPMENT_INIT_DATA[n] >> 8; para_data_temp[x++] = MFL_EQUIPMENT_INIT_DATA[n]; } para_data_temp[63] = 0x55; n = 8; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 16; n++) { if (MFL_EQUIPMENT_INIT_DATA_ENABLE[n]) { eeprom_data_temp[n * 2] = para_data_temp[n * 2]; eeprom_data_temp[n * 2 + 1] = para_data_temp[n * 2 + 1]; } } n = 8; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); n = 8; n++; n <<= 5; eeprom_24c64_read (n, 32, eeprom_data_temp); for (n = 0; n < 16; n++) { if (MFL_EQUIPMENT_INIT_DATA_ENABLE[n + 16]) { eeprom_data_temp[n * 2] = para_data_temp[n * 2 + 32]; eeprom_data_temp[n * 2 + 1] = para_data_temp[n * 2 + 33]; } } n = 8; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); x = 0; for (n = 0; n < 4; n++) { para_data_temp[x++] = MFL_USER_INIT_DATA[n] >> 8; para_data_temp[x++] = MFL_USER_INIT_DATA[n]; } para_data_temp[63] = 0x55; for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n]; n = 10; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); for (n = 0; n < 32; n++) eeprom_data_temp[n] = para_data_temp[n + 32]; n = 10; n++; n <<= 5; eeprom_24c64_write (n, 32, eeprom_data_temp); eeprom_24c64_write_byte(512, 0); } void debug_data_save (u8 board_temp_init, u32 adc_data_init) { u8 para_data_temp[32]; u16 n; u32 temp; temp = adc_data_init; temp &= 0xffffff; n = 0; para_data_temp[n++] = (u8)(temp >> 24); para_data_temp[n++] = (u8)(temp >> 16); para_data_temp[n++] = (u8)(temp >> 8); para_data_temp[n++] = (u8)(temp); para_data_temp[n++] = board_temp_init; para_data_temp[31] = 0x55; n = 12; n <<= 5; eeprom_24c64_write (n, 32, para_data_temp); } void debug_fix_data_display (u8 board_temp_init, u32 adc_data_init, u32 com_vol_init) { u32 sum, num; u16 temp; u8 x, a, b; lcd_post (1, 5); x = board_temp_init; if (x >= 100) { x -= 100; lcd_display ('+'); } else { x = 100 - x; lcd_display ('-'); } a = x / 10; b = x - a * 10; lcd_display (a + 0x30); lcd_display ('.'); lcd_display (b + 0x30); lcd_post (2, 5); sum = adc_data_init; sum &= 0xffffff; temp = (u16)(sum >> 20); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); temp = (u16)(sum >> 16); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); temp = (u16)(sum >> 12); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); temp = (u16)(sum >> 8); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); temp = (u16)(sum >> 4); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); temp = (u16)(sum >> 0); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); lcd_post (3, 5); sum = com_vol_init; if (sum >= 2500) sum = 2500; num = sum / 1000; sum -= num * 1000; lcd_display ((u16)(num) + 0x30); num = sum / 100; sum -= num * 100; lcd_display ((u16)(num) + 0x30); num = sum / 10; sum -= num * 10; lcd_display ((u16)(num) + 0x30); num = sum; lcd_display ((u16)(num) + 0x30); } void debug_com_data_display (u32 board_temp, u32 adc_data, u32 com_vol_data) { u32 sum, num; u16 temp, a, b, c; lcd_post (1, 9); sum = board_temp; if (sum >= 500) sum -= 500; else sum = 0; a = sum / 100; sum -= a * 100; b = sum / 10; sum -= b * 10; c = sum; if (a != 0) lcd_display (a + 0x30); else lcd_display (' '); lcd_display (b + 0x30); lcd_display ('.'); lcd_display (c + 0x30); lcd_post (2, 9); sum = adc_data; sum &= 0xffffff; temp = (u16)(sum >> 20); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); temp = (u16)(sum >> 16); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); temp = (u16)(sum >> 12); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); temp = (u16)(sum >> 8); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); temp = (u16)(sum >> 4); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); temp = (u16)(sum >> 0); temp &= 0x0f; if (temp < 10) lcd_display (temp + 0x30); else lcd_display (temp + 0x37); lcd_post (3, 9); sum = com_vol_data; if (sum >= 2500) sum = 2500; num = sum / 1000; sum -= num * 1000; lcd_display ((u16)(num) + 0x30); num = sum / 100; sum -= num * 100; lcd_display ((u16)(num) + 0x30); num = sum / 10; sum -= num * 10; lcd_display ((u16)(num) + 0x30); num = sum; lcd_display ((u16)(num) + 0x30); } void Uart1_BTcom_Send (u8 send_data_lenth) { DMA_Cmd(((DMA_Channel_TypeDef *) ((((uint32_t)0x40000000) + 0x20000) + 0x0044)), DISABLE); ((DMA_Channel_TypeDef *) ((((uint32_t)0x40000000) + 0x20000) + 0x0044))->CNDTR = send_data_lenth; DMA_Cmd(((DMA_Channel_TypeDef *) ((((uint32_t)0x40000000) + 0x20000) + 0x0044)), ENABLE); } void Uart1_BTcom_Recevie_Init (void) { Uart1_BTcom.UART_RXD_FINISH = 0; Uart1_BTcom.UART_RXD_EN = 0; Uart1_BTcom.UART_RXD_LENTH = 0; } void Uart3_Debug_Send (u8 send_data_lenth) { DMA_Cmd(((DMA_Channel_TypeDef *) ((((uint32_t)0x40000000) + 0x20000) + 0x001C)), DISABLE); ((DMA_Channel_TypeDef *) ((((uint32_t)0x40000000) + 0x20000) + 0x001C))->CNDTR = send_data_lenth; DMA_Cmd(((DMA_Channel_TypeDef *) ((((uint32_t)0x40000000) + 0x20000) + 0x001C)), ENABLE); } void Uart3_Debug_Recevie_Init (void) { Uart3_Debug.UART_RXD_FINISH = 0; Uart3_Debug.UART_RXD_EN = 0; Uart3_Debug.UART_RXD_LENTH = 0; }