Redfern_89

INT1_Vect

Dec 2nd, 2019
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. ISR ( INT1_vect ) {
  2.     static int CURRENT_SCLK = 0;
  3.     static int EEPROM_SCLK = 0;
  4.     static int AVERAGE = 0;
  5.     static int COINCIDENCE_CNT = 0;
  6.     T2_START;
  7.    
  8.     if (IRDA_SCLK > 5) {
  9.         IRDA_PACKET[IRDA_RECV_CNT] = IRDA_SCLK;
  10.  
  11.         IRDA_RECV_CNT++;
  12.         IRDA_SCLK = 0;
  13.        
  14.         if (IRDA_RECV_CNT == 32) {
  15.             EIMSK &= ~(1 << INT1);
  16.             T2_STOP;
  17.            
  18.             FTIME = millis;
  19.             IRDA_RECV_CNT = 33;
  20.             IRDA_READ_DONE = 1;
  21.             IRDA_RECV_DONE = 1;
  22.             if (!remote_setting_flag) {
  23.                 for (int i = 0; i <= 7; i++) {
  24.                     COINCIDENCE_CNT = 0;
  25.                     for (int j = 0; j <= 31; j++) {
  26.                         CURRENT_SCLK = IRDA_PACKET[j];
  27.                         EEPROM_SCLK = buttons[i][j];
  28.                        
  29.                         if (CURRENT_SCLK >= EEPROM_SCLK) AVERAGE = CURRENT_SCLK - EEPROM_SCLK;
  30.                         else if (CURRENT_SCLK <= EEPROM_SCLK) AVERAGE = EEPROM_SCLK - CURRENT_SCLK;
  31.                        
  32.                         if (AVERAGE <= 5) {
  33.                             COINCIDENCE_CNT++;
  34.                         }
  35.                         if (COINCIDENCE_CNT == 31) {
  36.                             COMMAND_NUM = i;
  37.                             break;
  38.                         } else {
  39.                             COMMAND_NUM = 255;
  40.                         }
  41.                     }
  42.                     if (COMMAND_NUM >= 0 && COMMAND_NUM <= 9) {
  43.                         break;
  44.                     }
  45.                 }
  46.             }
  47.         }
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment