Skip to content

Interrupts

Event-Driven Timing Execution


Overview

Interrupts allow REVA to execute timing-critical functions independently from the main loop.

This is essential because display updates, button scanning and menu logic are not suitable for precise waveform timing.


Purpose

The interrupt system provides:

  • deterministic scheduling,
  • repeatable timing,
  • independence from loop execution speed,
  • separation between user interface and waveform generation.

Firmware Relationship

loop()

Buttons
Display
Menus
EEPROM

↓

Interrupt System

↓

Timer2 Scheduler

↓

Timer1 Carrier Engine

↓

D9 / D10

Interrupt Hierarchy

Timer2
    ↓
Packet Scheduling

Timer1
    ↓
Carrier Generation

Timer2 controls the packet envelope.

Timer1 provides the carrier waveform.


Slow and Fast Work

Slow work belongs in the main loop.

Fast work belongs in the timer system.

Work Type Location
Display update loop()
Button scan loop()
EEPROM decision loop()
Packet scheduling Timer2
Carrier generation Timer1

Design Philosophy

Waveform generation should not depend on software execution speed.

Interrupt-driven timing gives REVA a stable timing foundation even while the user interface remains active.


See Also