Жесть с прерываниями на ATmega328

Тема в разделе "Микроконтроллеры AVR", создана пользователем Redfern89q, 13 янв 2019.

  1. MakD

    MakD Нерд

    Докладываю ситуацию:
    Код (C++):
    const     int     SECURITY_OPER_ID = 1010;
    const     int     SECURITY_PIN = 3;
    volatile  int     operId = 0;
    void setup() {
      pinMode(SECURITY_PIN, INPUT_PULLUP);
      attachInterrupt(1, securityInt, RISING);
    }
    void loop(){
      switch(operId){
        case SECURITY_OPER_ID :
          send2server(operId, 1);
          delay(200);
          operId = 0;  
          EIFR |= 1 << INTF1;
          attachInterrupt(1, securityInt, RISING);
          break;
      }
    }
    void securityInt(){
      detachInterrupt(1);
      operId = SECURITY_OPER_ID;
    }
    Все заработало как часы. Большое спасибо!
     
    Daniil нравится это.