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

📄 compression.txt

📁 数据压缩算法程序代码
💻 TXT
字号:
void RXalgorithm(void)
{
   static short RXI1;                  
   static short RXI2;                  
   static unsigned char output_byte;   
   static unsigned char output_byte_mask;   
   static unsigned char last_three_outputs;     

   bit EAstate;
   USHORT value;


   
   
   if(INIT_RX_ALGORITHM)
   {
      RXI1 = 0;
      RXI2 = 0;
      output_byte = 0;
      output_byte_mask = 0x80;
      last_three_outputs = 1;
      INIT_RX_ALGORITHM = 0;
   }

   EAstate=EA;
   EA = 0;                             

   value.S = ADCRXFIFO_Pull();         

   EA = EAstate;

   last_three_outputs<<=1;             
                                       
    
   if (((short)value.S - (RXI1>>I1_TIMECONST)) > 0) 
   {
      output_byte |= output_byte_mask; 
                                       
                                       
      last_three_outputs |= 0x01;      
   }

   
   if ( ((last_three_outputs & 0x07) == 0x07) || 
      ((last_three_outputs & 0x07) == 0x00))
   {
         RXI2 += DELTAMAX;

   }
   else
   {
      if (RXI2 != 0) 
         RXI2 -= DELTAMAX;
   }

   
   if ((last_three_outputs & 0x01) == 1)
   {
      RXI1 += ((RXI2>>I2_TIMECONST) + DELTAMIN);
   }
   else
      RXI1 -= ((RXI2>>I2_TIMECONST) + DELTAMIN);

   if (output_byte_mask == 1)
   {
      output_byte_mask = 0x80;        
      EAstate=EA;
      EA = 0;                          
      UTXFIFO_Push(output_byte);       
                                      
      EA = EAstate;
     
      if ((UART_MODE == TX_MODE) && !(TX_IN_PROGRESS) && 
         !(TRANSITION_IN_PROGRESS) && 
         (UTXFIFO.COUNT >= DATA_BYTES_PER_TRANSMISSION))
      {
         TX_IN_PROGRESS = 1;           
                                       
         TI0 = 1;
      }   

      output_byte = 0;                 
   }
   else
   {
      output_byte_mask >>= 1;          

   EA = EAstate;
}

⌨️ 快捷键说明

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