Fondamenti · Lezione 9 di 11 · circa 15 min

PWM, macchine a stati e altro

Cinque idee che ogni sviluppatore firmware usa

PWM: regolare con commutazioni rapide

Un pin è o tutto acceso o tutto spento. Commutandolo molto in fretta, e scegliendo per quale quota di tempo resta acceso (il duty cycle), un LED o un motore sentono la media. La commutazione la fa un timer, non la CPU.

Macchine a stati: come si progetta la logica di un dispositivo

Il dispositivo è sempre in un solo stato, e gli eventi lo portano in un altro stato. Prima disegna il diagramma, poi scrivi il codice.

typedef enum { IDLE, HEATING, ERROR } State;

switch (state) {
    case IDLE:    if (temp < target)  { heater_on();  state = HEATING; } break;
    case HEATING: if (temp >= target) { heater_off(); state = IDLE;    } break;
    case ERROR:   if (button_pressed)  {               state = IDLE;    } break;
}

Provalo: in Nuovo progetto, il Progettista di macchine a stati disegna la tua macchina, la controlla e scrive il codice C con un test unitario per ogni transizione. Il termostato qui sopra è uno dei suoi esempi.

DMA, watchdog e basso consumo

Domande da colloquio

  1. Come controlla il PWM la velocità di un motore?
  2. Perché progettare il firmware come una macchina a stati?
  3. Come si alimenta in sicurezza un watchdog quando girano più task?

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