battlecake

Untitled

Jul 22nd, 2021
798
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ISR (USART_RX_vect){
  2.    
  3.     uart_last_rx = timea;
  4.     uint8_t temp = UDR0;
  5.     char puffer[9];
  6.  
  7.     OCR2A = 0;
  8.  
  9.     switch (uart_rx_state)
  10.     {
  11.         case INITIAL_BYTE:
  12.  
  13.             uart_rx_state = SOURCE_BYTE;
  14.             UDR0 = temp;
  15.             break;
  16.            
  17.         case SOURCE_BYTE:
  18.  
  19.             uart_buffer.RX_source = temp;
  20.             uart_rx_state = LENGTH_BYTE;
  21.             break;
  22.            
  23.         case LENGTH_BYTE:
  24.  
  25.             uart_buffer.RX_length = temp;
  26.             uart_buffer.RX_count = 0;
  27.             uart_rx_state = DATA_BYTE;
  28.             break;
  29.            
  30.         case DATA_BYTE:
  31.  
  32.             if (uart_buffer.RX_count <= uart_buffer.RX_length)
  33.             {
  34.                 uart_buffer.RX_data[uart_buffer.RX_count] = temp;
  35.                 uart_buffer.RX_count++;
  36.             }else uart_rx_state = CHECKSUM_BYTE;
  37.  
  38.             break;
  39.            
  40.         case CHECKSUM_BYTE:
  41.  
  42.             uart_buffer.RX_checksum = temp;
  43.             uart_Protocol(MODE_WRITE, uart_buffer.RX_data, uart_buffer.RX_count);  
  44.             uart_rx_state = INITIAL_BYTE;
  45.             break;
  46.     }
  47.  
  48.     OCR2A = 255;
  49. }
RAW Paste Data