fn handle_ime_delay(&mut self) {
        match self.ie_delay_state {
            InterruptFlagDelayStatus::Waiting => {}
            InterruptFlagDelayStatus::ChangeScheduled => {
                self.ie_delay_state = InterruptFlagDelayStatus::FinishedDelay
            }
            InterruptFlagDelayStatus::FinishedDelay => {
                self.ime = true;
                self.ie_delay_state = InterruptFlagDelayStatus::Waiting;
            }
        }
        match self.de_delay_state {
            InterruptFlagDelayStatus::Waiting => {}
            InterruptFlagDelayStatus::ChangeScheduled => {
                self.de_delay_state = InterruptFlagDelayStatus::FinishedDelay
            }
            InterruptFlagDelayStatus::FinishedDelay => {
                self.ime = false;
                self.de_delay_state = InterruptFlagDelayStatus::Waiting;
            }
        }
    }
/// EI/DI toggles IME the cycle after
EI/DI toggles IME the cycle after
EI / DI toggles IME the cycle after
fn handle_ime_delay(&mut self) {
        match self.ie_delay_state {
            InterruptFlagDelayStatus::Waiting => {}
            InterruptFlagDelayStatus::ChangeScheduled => {
                self.ie_delay_state = InterruptFlagDelayStatus::FinishedDelay
            }
            InterruptFlagDelayStatus::FinishedDelay => {
                self.ime = true;
                self.ie_delay_state = InterruptFlagDelayStatus::Waiting;
            }
        }
        match self.de_delay_state {
            InterruptFlagDelayStatus::Waiting => {}
            InterruptFlagDelayStatus::ChangeScheduled => {
                self.de_delay_state = InterruptFlagDelayStatus::FinishedDelay
            }
            InterruptFlagDelayStatus::FinishedDelay => {
                self.ime = false;
                self.de_delay_state = InterruptFlagDelayStatus::Waiting;
            }
        }
    }
fn handle_ime_delay ( & mut self ) { match self . ie_delay_state { InterruptFlagDelayStatus :: Waiting => { } InterruptFlagDelayStatus :: ChangeScheduled => { self . ie_delay_state = InterruptFlagDelayStatus :: FinishedDelay } InterruptFlagDelayStatus :: FinishedDelay => { self . ime = true ; self . ie_delay_state = InterruptFlagDelayStatus :: Waiting ; } } match self . de_delay_state { InterruptFlagDelayStatus :: Waiting => { } InterruptFlagDelayStatus :: ChangeScheduled => { self . de_delay_state = InterruptFlagDelayStatus :: FinishedDelay } InterruptFlagDelayStatus :: FinishedDelay => { self . ime = false ; self . de_delay_state = InterruptFlagDelayStatus :: Waiting ; } } }
EI/DI toggles IME the cycle after
EI / DI toggles IME the cycle after
&mut self
&mut self