Fondamenti · Lezione 5 di 11 · circa 15 min

Timer e interrupt

Tempi esatti senza sprecare la CPU

Un ciclo di attesa tiene tutta la CPU occupata a non fare nulla, e i suoi tempi sono a occhio. Due funzioni hardware risolvono il problema: timer e interrupt.

Timer: un contatore che conta da solo

Il prescaler (PSC) rallenta il clock, e il contatore riparte da 0 ogni volta che raggiunge il valore di ricarica (ARR). Ogni ripartenza è un evento di update.

Interrupt: l’hardware batte sulla spalla della CPU

Quando succede un evento, la CPU mette in pausa il tuo codice, esegue una breve funzione chiamata routine di servizio dell’interrupt (ISR), poi riprende esattamente da dove si era fermata. Per chi viene dal software: una callback di evento, scatenata dall’hardware.

La schermata Impara di BoardPilot: una lezione con l’anteprima della scheda in 3D
Provala dal vivo

La vera app, nel tuo browser: questa lezione con la sua anteprima 3D su una scheda Raspberry Pi Pico simulata. Niente da installare, niente da collegare.

void TIM2_IRQHandler(void) {           // the name comes from the vector table
    if (TIM2->SR & (1 << 0)) {         // update event flag
        TIM2->SR &= ~(1 << 0);         // clear it, or the ISR runs again forever
        GPIOA->ODR ^= (1 << 5);        // toggle the LED
    }
}

// in main(): 16 MHz / 16000 = 1 kHz ticks, 1000 ticks = 1 second
TIM2->PSC = 15999;
TIM2->ARR = 999;
TIM2->DIER |= (1 << 0);                // interrupt on update
TIM2->CR1  |= (1 << 0);                // start counting
NVIC_EnableIRQ(TIM2_IRQn);             // let the CPU accept it

Domande da colloquio

  1. Qual è la differenza tra polling e interrupt?
  2. Perché una routine di interrupt deve essere breve?
  3. Come si scelgono PSC e ARR per un interrupt ogni secondo?

Qui non ci sono le risposte, apposta: prova prima a rispondere ad alta voce. Nell’app BoardPilot l’allenatore per i colloqui legge la tua risposta e ti dice cosa era giusto, cosa manca e cosa chiederebbe dopo un intervistatore senior (usa il fornitore di IA che scegli nell’app). Domande da colloquio sui sistemi embedded →

Parole chiave

Nell’app le lezioni prendono vita

Nell’app le lezioni hanno demo interattive ed esercitazioni pratiche verificate sulla tua scheda. Queste pagine sono la versione da leggere: le demo sono descritte a parole e le esercitazioni richiedono l’app.

Scarica BoardPilot Prova le lezioni nel browser