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

📄 wake_up_key.c

📁 基于ST72324设计的汽车无钥匙开门源程序
💻 C
字号:
#define __DEFINE_REGISTERS_STVD7_INCLUDE__
#include "ST72324BLK2.h"
#include "Head.h" 
#include "Variables.h"
#include "Subroutine.h"
#undef  __DEFINE_REGISTERS_STVD7_INCLUDE__
#define asm_nop() _asm ("nop\n")
#define DI() _asm ("sim\n")
#define EI() _asm ("rim\n")

void  LF_Wake_Up_Key(void)
 {
	 
		 if(Status&ShutOffPKE  &&! (Flag_Learn1 && !Flag_Learn0)) //if PKE Funtion disable will don't Perform following 
		    return;
				
		 if(!AutoLockTimer  && !Port_ACC_Trig)
       {
				 if(!(Status&InGuard))
				  {
					 SystemTimer=0; 
				   Status|=InGuard;
 				   OutputCtrl(LockOn,0);
					 if(Flag_RollWindow_Allow)
					  {
					    EnableRollUpWindow=1;
							Flag_RollWindow_Allow=0;
					  }							
				  } 
       }	
			 
/*==================================================================*/
      if(Flag_Learn1 && !Flag_Learn0)
			   LFScanTimer=20;  //500ms
      else if(Status&InGuard)
				 LFScanTimer=10;  //500ms
      else if(Flag_FaseCheck)
         LFScanTimer=15;  //250ms 
      else
         LFScanTimer=30;	//1s	(Unguard mode)  	
/*==================================================================*/
      if(TxLFClk>=16 && Flag_WaitingACK)   //400ms 
       {
				  Flag_WaitingACK=0;
					Flag_FaseCheck=1;
					if(Flag_FirstLossKey)
						 Flag_Channel^=0x01;
					Flag_FirstLossKey=1;
					
			 }
      else if(TxLFClk >= LFScanTimer)
			 {
				 if(Port_ACC_Trig && !(Status&InGuard))
				  {
						   AutoLockTimer=(3*4+1);
							 TxLFClk=0;
               TXLFCompleted=1;
							 Flag_Channel=0;
						   return;
				  }	
				//over 48 hours ,clear at unguard mode 	
				
				 if(Status&DisablePKE && !(Flag_Learn1 && !Flag_Learn0))
					{
						   TxLFClk=0;
               TXLFCompleted=1;
							 Flag_Channel=0;
						   return;
					}
// begain transmit 				
						 
					if(Flag_Channel)
					 {
						TX_Channel_1;
				   }	
					else
					 { 
						TX_Channel_1;   //TX_Channel_0; for 2 channel 
				   }	
					if(TXLFCompleted)
						{	
							if(Flag_Learn1 && !Flag_Learn0)
							 {
								  
								  if(Flag_Learn_Step)
        					 {
				         		 TX_Channel_1;
									 }	
									else
					         {
						         TX_Channel_1;  //TX_Channel_0; for 2 channel 
				           }	
								  TXCode(LearnREQ,Strong);
									Flag_Learn_Step^=1;
							 }
							else 
							 {
								   if(Status&InGuard)    // no seek key
                     {									 
									    TXCode(SearchKey,Strong);
											Flag_Position=0;
									   } 	
									 else
									   { 
							        TXCode(SearchKey,Weak);
											Flag_Position=1;
									   }	
						   }	
							TXLFCompleted=0;
							Flag_WaitingACK=1;
							TxLFClk=0;
						}
				 
			 }
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -