EO_476

LED PROJECT Scegliere un periodo PWM tale da poter tener contro dell’effetto di persistenza dell’occhio umano: 30 ~ 120 Hz. Moltiplicare quel valore per fornire un effetto di atte- nuazione uniforme con circa 256 step. Questo significa ~ 32 kHz. C’è un oscillatore interno dal consumo estre- mamente basso disponibile all’interno di ogni micro- controllore PIC esattamente a quella frequenza. Ora se si vuole produrre l’effetto respiro più semplice (usando un profilo triangolare) con un intervallo tra ½ secondo e 2 secondi, bisognerà “salire e scendere” una rampa di 512 step (totali) per ogni periodo. Questo si traduce approssimativamente nella necessità di aggiornare il PWM circa ogni millisecondo. In termini di instruction cycle della MCU, alla frequenza di clock di 32 kHz. Ciò significa ricevere un interrupt ogni otto cicli di istruzione. Anche per il progettista embedded più esperto quella sembrava una affermazione impossibile. Il clock doveva essere aumentato, o, in altre parole, erano necessari più MIPS. Questa era stata una vera illuminazione per alcuni par- tecipanti, poiché per la prima volta avevano compreso che il termine performance (sia in MIPS che MHz) aveva un significato molto diverso in questo contesto. Il micro- controllore doveva essere più veloce anche se non stava nemmeno tentando di eseguire calcoli ma doveva sempli- cemente rispondere tempestivamente a un evento ! Questo era stato il loro primo incontro con il concetto di real-time performance . Seguire il ritmo L’esempio appena descritto permette di evidenziare i li- miti del tradizionale approccio MCU/core-centrico alle applicazioni embedded. Spesso si è ossessionati dalle prestazioni, dai MIP, dai megahertz e dai megabyte, ma spesso è la tipologia sbagliata di prestazioni quello su cui ci si sta concentrando. A volte fare un passo indietro ed esaminare un proble- ma da una nuova angolazione può rivelare una soluzio- ne nascosta, più elegante ed equilibrata. Ad esempio, quando ci si avvicina al problema della respirazione del LED , a volte è utile liberare la mente dal tradizionale approccio MCU/core-centrica smettendo di pensare a interrupt e tabelle di consultazione. Concentrando l’attenzione sui requisiti del problema Fig. 2 – MCC System configuration window, dettagli dell’oscillatore interno Fig. 3 – Finestra PWM6 configuration VII LIGHTING 19 - MARZO 2019

RkJQdWJsaXNoZXIy MTg0NzE=