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

📄 temp.cpp

📁 基于单片机ATmega16制作IC card 。程序中包含数据的采集和通信。
💻 CPP
字号:
  // TODO: Add your code here
	 

  if(iPodConnectStatus == IPOD_CONNECT)
  {
   if(wiPodConnectDelay > MS_4000)
   {
    iPodConnectStatus = IPOD_SUPPLY_POWER;
	//COMCommand.SendIdentifyDeviceLingoes
   }
  }	 
  else 
  {
   iPodConnectStatus = NO_IPOD_CONNECT; 
   UartReceive = UART_RECEIVE;
   bTxCommand = FALSE;
   FMTxStatus = NO_IPOD_CONNECT_STATUS;
  } 
  
  if(iPodConnectStatus == IPOD_SUPPLY_POWER) 
  {
   if(UartReceive == UART_IS_RECEIVING)
   {
    if(RxTimeOut > MS_300)
    {
     UartReceive = UART_RECEIVE;
    }		
   }	
   if(UartReceive == UART_RECEIVE_ONE_PACKET)
   {		
    UartReceive = UART_RECEIVE;
    switch(RxBuff[1]) 
    {
     case GENERAL_LINGO:
	      switch(RxBuff[2])
	      {
		   case REQUEST_IDENTIFY:
		   	    COMCommand.SendIdentifyDeviceLingoes();
                TxRetryCounts = TX_RETRY_COUNTS;
                FMTxStatus = IDENTIFY_DEVICE_LINGO_STATUS;
                wStatusDelay = 0; 
                bTxCommand = FALSE;
		        break;

           case GET_ACCESSORY_INFO:
                switch(RxBuff[3])
               {/*
			    case ACCESSORY_CAPABILITIES:
		             ReadFlash(TxBuff,(prog_uchar *)RetAccessoryCapbilites,RET_ACCESSORY_CAPBILITES_LEN);
                     WriteUart(RET_ACCESSORY_CAPBILITES_LEN,WAIT_TX);
		             break;

                case ACCESSORY_NAME:
                     ReadFlash(TxBuff,(prog_uchar *)RetAccessoryName,RET_ACCESSORY_NAME_LEN);
                     WriteUart(RET_ACCESSORY_NAME_LEN,WAIT_TX);
				     break;

                //case ACCESSORY_FIRMARE_VERSION:
                     //ReadFlash(TxBuff,(prog_uchar *)RetAccessoryFirmwareVer,RET_ACCESSORY_FIRMWARE_VER_LEN);
                     //WriteUart(RET_ACCESSORY_FIRMWARE_VER_LEN,WAIT_TX);
				     //break;

                default:
				     break;*/
               }
			    break;
		
		  /*		
		   case NOTIFY_IPOD_STATE_CHANGE:
		        if(RxBuff[3] == LIGHT_SLEEP)
		        {
                 asm("sbi 8,0");
                 iPodPowerStatus = LIGHT_SLEEP;
                }
			    if(RxBuff[3] == POWER_ON)
			    {
				 iPodPowerStatus = POWER_ON;
                 bKeyUse == FALSE;
                } 
		        break;*/
			      
		   case ACK:
		        switch(RxBuff[4])
			   {/*
                case IDENTIFY_DEVICE_LINGO:
				     if(RxBuff[3] == ACK_OK)
				     {
                      FMTxStatus = COTNEX_BOTTON_RELEASE_STATUS0;
                      bTxCommand = TRUE;
                      wStatusDelay = 0;
                     }
				     else
				     {
				      if(TxRetryCounts > 0)
				      {
				       TxRetryCounts--;
                       FMTxStatus = IDENTIFY_DEVICE_LINGO_STATUS;
                       bTxCommand = FALSE;
                       wStatusDelay = 0;
                       SendIdentifyDeviceLingoes();
                   	  }
					 }*/
					 break;
					 
                 case GET_DEV_AUTHENTICATION_INFO:
		              COMCommand.SendDevAuthenticationInfo();
			          break;					 
                 
                 case ACK_DEV_AUTHENTICATION_INFO:	
		              if(RxBuff[3] != ACK_OK)
			          {
                       COMCommand.SendDevAuthenticationInfo();
                      }
                      break;
					  
			    //case GET_DEV_AUTHENTICATION_SIGNATURE:
		              //COMCommand.SendDevAuthenticationSignature();
			          //break;		  

			      default:
				       break;
			    }
		        break;

		   default:
		        break; 
		  }
		  break;

     case RF_TRANSMITTER_LINGO:
	      switch(RxBuff[2])
		  {/*
          case BEGIN_TRANSMISSION:
		       asm("cbi 8,0");
		       asm("cbi 11,5");
		       break;

          case END_TRANSMISSION:
               asm("sbi 8,0");
		       break;         

          default:
		       break;*/
		  } 
		  break;

	 case EXTENDED_INTERFACE_LINGO:
	      switch(*(unsigned int *)(RxBuff + 2))
		  {
		  //case RET_MONO_DISPLAY_IMAGE_LIMIT:
		       //stImageLimit.wMaxImageWidth = *(unsigned int *)(RxBuff + 4);
			   //stImageLimit.wMaxImageHeight = *(unsigned int *)(RxBuff + 6);
			   //bGetMonoImageLimits = TRUE; 
		       //break;
	       case RET_PLAY_STATUS:
		       /*if(RxBuff1[12] == PLAY_PAUSE)
			   {
			    ReadFlash(TxBuff,(prog_uchar *)PlayControl,PLAY_CONTROL_LEN);
                WriteUart(PLAY_CONTROL_LEN,UN_WAIT_TX);
			    FMTxStatus = PLAY_CONTROL_STATUS;
                wStatusDelay = 0;
			   }
			   /*
			   //else if(RxBuff1[12] == PLAY_STOP)
			   //{
			    //ReadFlash(TxBuff,(prog_uchar *)PlayControl,PLAY_CONTROL_LEN);
                //TxBuff[6] = 0x06;
				//WriteUart(PLAY_CONTROL_LEN,UN_WAIT_TX);
			    //FMTxStatus = PLAY_CONTROL_STATUS;
                //wStatusDelay = 0;
			   //}*/
			   /*else
			   {
			    SendSetDisplayImage();
			    FMTxStatus = SET_DISPLAY_IMAGE_STATUS;
                wStatusDelay = 0;
			   }
               asm("cbi 8,0");
               asm("cbi 11,5");*/
                break;
          
           case EXTENDED_INTERFACE_LINGO_ACK:
		        switch(*(unsigned int *)(RxBuff + 5))
			    {/*
			    case PLAY_CONTROL:
				     if(RxBuff[4] == ACK_OK)
					 {
				      SendSetDisplayImage();
				      FMTxStatus = SET_DISPLAY_IMAGE_STATUS;
                      wStatusDelay = 0;
                     }
	    	         break;

                case SET_DISPLAY_IMAGE:
				     if(RxBuff[4] == ACK_OK)
                     {
					  FMFrequeceControl(wFMFrequence,STEREO | PLL_OUTPUT_USUAL | FM_TEST);
					  FMTxStatus = EXIT_REMOTE_UI_MODE_STATUS;
			          bTxCommand = TRUE;
                      wStatusDelay = 0; 
                     }
                     break;

                default:
				     break;*/
                }
           default:
                break;
		  }
	     
	      break;	    
     default:
	      break;
    }
   }
  }   
	
  if(bTxCommand == TRUE)
  {
   switch(FMTxStatus) 
   {/*
    case COTNEX_BOTTON_RELEASE_STATUS0:
	     if(wStatusDelay > MS_50)  //10ms
		 {
	      SendContextButtonStatus(RELEASE_PAUSE_KEY);
          FMTxStatus = CONTEX_BOTTON_PRESS_STATUS1;
          wStatusDelay = 0;
         }
		 break;	    

 	case CONTEX_BOTTON_PRESS_STATUS1:
	     if(wStatusDelay > MS_50)  //10ms
		 {
	      SendContextButtonStatus(PRESS_PAUSE_KEY);
          FMTxStatus = CONTEX_BOTTON_RELEASE_STATUS1;
	      wStatusDelay = 0;
         }
		 break;	    

    case CONTEX_BOTTON_RELEASE_STATUS1:
	     if(wStatusDelay > MS_30)
		 {
		  SendContextButtonStatus(RELEASE_PAUSE_KEY);
          FMTxStatus = ENTER_REMOTE_UI_MODE_STATUS;
          wStatusDelay = 0;
         }
         break;
    
	case CONTEX_BOTTON_PRESS_STATUS:
	     if(wStatusDelay > MS_410)
		 {
		  SendContextButtonStatus(PRESS_PLAY_PAUSE_KEY);
          FMTxStatus = CONTEX_BOTTON_RELEASE_STATUS;
          wStatusDelay = 0;
         }
         break;

    case CONTEX_BOTTON_RELEASE_STATUS:
	     if(wStatusDelay > MS_20)
		 {
		  SendContextButtonStatus(RELEASE_PLAY_PAUSE_KEY);
    	  FMTxStatus = CONTEX_BOTTON_RELEASE_DELAY_STATUS;
          wStatusDelay = 0; 
		 }
         break;
		
	case CONTEX_BOTTON_RELEASE_DELAY_STATUS:
         if(wStatusDelay > 0)  //MS_10
		 {
	      FMTxStatus = STANDARD_UI_MODE_STATUS;
		  bTxCommand = FALSE;
		 }
		 break;	 	     

	default:
		 break;*/   
   }   
  }
 
  if((FMTxStatus < EXIT_REMOTE_UI_MODE_STATUS) || (FMTxStatus > STANDARD_UI_MODE_STATUS))
  {
   if(wStatusDelay > MS_2500)
   {
    COMCommand.SendIdentifyDeviceLingoes();
    TxRetryCounts = TX_RETRY_COUNTS;
    FMTxStatus = IDENTIFY_DEVICE_LINGO_STATUS;
    wStatusDelay = 0; 
    bTxCommand = FALSE;
   }
  }  
 
  
  if(bKeyUse == TRUE)
  {
   if((FMTxStatus == STANDARD_UI_MODE_STATUS) || (FMTxStatus == EXIT_REMOTE_UI_MODE_STATUS))
   {
    bKeyUse = FALSE;
    switch(KeyValue)
    {
     case KEY_UP:
	      //if(FMTxStatus == EXIT_REMOTE_UI_MODE_STATUS)
		  //{  
		   if(uFMFrequence.wFMFrequence < FM_MAX_FREQUENCE)
		   {  
            uFMFrequence.wFMFrequence++;
           }
		   else
		   {
		    uFMFrequence.wFMFrequence = FM_MIN_FREQUENCE;
		   }
           bFMFrequenceChange = TRUE;
          //}
          goto FMFreqControl;

     case KEY_DOWN:
	      //if(FMTxStatus == EXIT_REMOTE_UI_MODE_STATUS)
		  //{
           if(uFMFrequence.wFMFrequence > FM_MIN_FREQUENCE)
		   {
            uFMFrequence.wFMFrequence--;
           }
		   else
		   {
		    uFMFrequence.wFMFrequence = FM_MAX_FREQUENCE;
		   }
           bFMFrequenceChange = TRUE;
          //}
FMFreqControl:
          FMFrequeceControl(uFMFrequence.wFMFrequence,STEREO | PLL_OUTPUT_USUAL | FM_TEST);
          LCD.FrequenceToDisplayBuff(NO_M);
          LCD.FrequenceAreaToDisplayBuff(uFMFrequence.wFMFrequence);
          LCD.DisplayFrequence(); 
		  if(FMTxStatus == EXIT_REMOTE_UI_MODE_STATUS)
		  {
		   FMTxStatus = SET_DISPLAY_IMAGE_STATUS;
          }
          else
		  {
		   FMTxStatus = ENTER_REMOTE_UI_MODE_STATUS;	
          }
		  break;

     default:
	      break;
    }
   }
  }

⌨️ 快捷键说明

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