Lezione 18 Sommario Misura di inervalli di empo Unià imer dei mc e DSP Tipi di imer Esempi di unià di imer in mc o DSP Uso del imer Lezione 18 Maeriale di riferimeno 1. Daashee del microconrollore PIC18F452, disponibile sul sio del corso in formao pdf. 2. Daashee del DSP DMC401, disponibile sul sio del corso in formao pdf. 3. Daashee del microconrollore Philips LPC2129, disponibile sul sio web del corso in formao pdf. Simone Buso - Microconrollori e DSP - Lezione 18 1 Simone Buso - Microconrollori e DSP - Lezione 18 2 Misura di inervalli di empo Nella realizzazione di sisemi di conrollo o supervisione per apparai di qualunque naura, è spesso richiesa la capacià di misurare inervalli di empo. Per quesa ragione, alcuni DSP, ra quelli più orienai al conrollo real ime, e praicamene ui i mc rendono disponibili all uene una o più unià periferiche specifiche, che sono dee imer. I imer possono essere di ipo general purpose (GPT) oppure dedicai ad alcune funzioni specifiche (e.g. PWM, wachdog, ). Simone Buso - Microconrollori e DSP - Lezione 18 3 Misura di inervalli di empo La misura di inervalli di empo è richiesa per la gesione di cicli di aesa, la generazione di segnali di comando per periferiche eserne con cadenza prefissaa, ec. In linea di pricipio, le emporizzazioni possono essere realizzae anche mediane cicli di aesa inserii nel programma principale. La duraa di quesi cicli è conrollaa dal programmaore inserendo isruzioni inuili per una duraa complessiva pari a quella richiesa. Chiaramene di raa di un approccio molo inefficiene. Simone Buso - Microconrollori e DSP - Lezione 18 4 Misura di inervalli di empo Molo più efficiene è l approccio che fa uso di inerruzioni. Tui i imer sono in grado di produrre richiese di inerruzione per il processore a inervalli di empo prefissao. Finché l inerruzione non viene richiesa, il processore rimane libero di svolgere alre operazioni. È però necessario presare aenzione alle alre sorgeni di inerruzione, che porebbero compromeere la misura di empo. Simone Buso - Microconrollori e DSP - Lezione 18 5 Programma principale Eveni del Timer (IRQ2) IRQ1 IRQ2 Misura di inervalli di empo IRQ1 si verifica poco prima di IRQ2 IRQ2 viene lasciaa pendene fino al ermine di ISR1 Esempio di inerferenza ra la rouine di iming e una uleriore sorgene di inerruzione. Simone Buso - Microconrollori e DSP - Lezione 18 6
Misura di inervalli di empo L impao dell inerferenza ra le due sorgeni di inerruzione può essere molo diverso a seconda dell enià relaiva di rispeo alla periodicià degli eveni del imer. La perurbazione è di solio occasionale e ende a provocare un jier (piccolo errore di sincronismo) sugli eveni associai alla rouine del imer. Se l enià del jier è piccola, e.g. 0.1% o meno, spesso il suo effeo sul sisema conrollao è rascurabile. Misura di inervalli di empo Se queso effeo non è rascurabile le possibili alernaive sono: 1. sospendere la generazione di inerruzioni a priorià maggiore di quella associaa al imer (mascherameno); 2. associare al imer la IRQ di priorià maggiore (non sempre è possibile); 3. ricorrere a meccanismi di emporizzazione diversi e.g. basai sul funzionameno del imer in modalià compare, che vedremo in seguio. Simone Buso - Microconrollori e DSP - Lezione 18 7 Simone Buso - Microconrollori e DSP - Lezione 18 8 Timer Timer Dal puno di visa circuiale, un imer è un semplice conaore binario. Il coneggio riguarda però i periodi di clock del processore o mulipli di quesa quanià. Il imer è doao di un regisro di configurazione, che permee al programmaore di fissare, come minimo, la frequenza del coneggio, ma spesso anche alri paricolari relaivi alla modalià di coneggio, e.g. coneggio a salire oppure alla rovescia, con arreso oppure coninuo Bi di Configurazione Regisro di pre-carica 16 bi Conaore 16 bi Comparaore binario 16 bi Regisro di COMPRE TIMER a 16 bi Sruura di principio di una unià imer a 16 bi. f CLK /N Prescaler IRQ Livello del bi di oupu 1 D Clk Q f CLK CPU Clock Pin di oupu del mc Simone Buso - Microconrollori e DSP - Lezione 18 9 Simone Buso - Microconrollori e DSP - Lezione 18 10 Timer Moli imer permeono di imposare il valore iniziale del coneggio in un regisro di appoggio (regisro di pre-carica). l raggiungimeno del valore imposao nel regisro di compare, il imer può generare una richiesa di inerruzione oppure fissare direamene lo sao di un bi su una pora di uscia, senza richiedere l inerveno del processore. La frequenza di coneggio può essere imposaa araverso un circuio, deo prescaler, ad un valore soomuliplo di f CLK. Simone Buso - Microconrollori e DSP - Lezione 18 11 Timer È spesso possibile configurare la modalià di coneggio, non solo decidendone il verso, ma anche il ipo di riprisino da operare al raggiungimeno del valore imposao. È possibile fare in modo che il imer si arresi fino a un nuovo comando di avvio, che deve provenire dalla CPU. In alernaiva, è possibile ricaricare in modo auomaico il valore iniziale del coneggio e farlo riparire senza inerveno della CPU, oenendo così inerrup, o scriure su pore di uscia, a cadenza prefissaa. Simone Buso - Microconrollori e DSP - Lezione 18 12
Timer La prima modalià può essere impiegaa per inrodurre un riardo di duraa prefissaa ra due azioni del processore. Dopo la prima azione () si aiva il imer, e solo all occorrenza della richiesa di inerrup si compie la seconda (B). Nel fraempo il processore può svolgere alri compii. Programma principale B ISR del imer compare Coneggio del imer precarica Simone Buso - Microconrollori e DSP - Lezione 18 13 Timer (modalià free run) La seconda modalià (free-run) può essere impiegaa per ripeere una sessa azione con una frequenza di ripeizione predefinia e minimo jier. overflow Programma principale ISR del imer IRQ del imer coneggi del imer precarica Simone Buso - Microconrollori e DSP - Lezione 18 14 compare Timer (modalià compare) L uso della modalià compare permee di realizzare funzioni più complesse, come la generazione di impulsi di duraa variabile. In queso caso, il regisro di compare viene caricao con un numero che, nella scala di coneggio del imer (valore in secondi di un suo incremeno uniario), rappresena la duraa desideraa dell impulso. ll avvio del imer, il bi di uscia viene asserio e sarà de-asserio al verificarsi della condizione di compare, dalla ISR del imer o in modo auomaico (quando possibile). Simone Buso - Microconrollori e DSP - Lezione 18 15 Timer (modalià compare) Diversamene dai casi precedeni, in queso caso si suppone però di modificare il valore conenuo nel regisro di compare, e.g. nel corso dell esecuzione della rouine di servizio. In queso modo, il empo ra due eveni di compare, e quindi la duraa dell impulso prodoo sul pin di uscia, può variare ciclo per ciclo. Vedremo che, in alcuni casi, quesa modalià di funzionameno è uleriormene faciliaa dalla presenza di imer specifici, dei modulaori PWM. Simone Buso - Microconrollori e DSP - Lezione 18 16 overflow precarica Timer (modalià compare) Programma principale ISR del imer coneggi del imer Simone Buso - Microconrollori e DSP - Lezione 18 17 Impulsi generai IRQ del imer compare Uso del imer in modalià compare per generazione di impulsi a duraa variabile. Timer (modalià capure) Nella modalià capure, il imer comincia il coneggio in risposa ad un eveno eserno, ipicamene un frone di salia o di discesa su uno dei pin di ingresso del processore. Il coneggio ermina al verificarsi di un uleriore eveno sullo sesso pin. Quesa modalià permee di misurare la duraa emporale di eveni eserni, e.g. la duraa di un impulso applicao al pin di ingresso, espressa in passi di coneggio. Può essere usaa per realizzare sisemi auomaici di sincronizzazione ra processi. Simone Buso - Microconrollori e DSP - Lezione 18 18
Timer (modalià capure) Il conaore del imer procede di norma in free run. I suoi valori vengono salvai in opporuni regisri (di solio uno per ciascun eveno). La disanza emporale ra i due eveni si può quindi oenere semplicemene soraendo uno all alro i due valori del imer salvai. E imporane osservare che l evenuale occorrenza dell overflow del imer ra i due eveni non compora mai alcun errore nella rilevazione della duraa, i.e. il risulao della sorazione è comunque correo. Simone Buso - Microconrollori e DSP - Lezione 18 19 overflow precarica Timer (modalià capure) coneggi del imer Uso del imer in modalià capure per misurare la duraa di impulsi eserni. Simone Buso - Microconrollori e DSP - Lezione 18 20 Impulsi eserni Eveno Eveno B Timer (modalià capure) In quesa modalià di funzionameno, una richiesa di inerruzione può essere generaa in occorrenza di un eveno qualunque ( e B), oppure in uno solo dei due ( oppure B). Nella misura di empi è spesso conveniene associare l inerruzione solo all eveno che conclude l inervallo di misura, in modo da eseguire il calcolo della duraa all inerno della ISR. Duraa = Timer(B) Timer() La quanià risulane sarà sempre posiiva. Simone Buso - Microconrollori e DSP - Lezione 18 21 Timer con funzioni specifiche lcuni imer possono essere oimizzai per lo svolgimeno di alcune funzioni specifiche e risulare poco flessibili o adaabili a compii diversi. Tra quesi ci sono: 1. real ime clock; 2. wachdog imer; 3. modulaori PWM. i modulaori PWM dedicheremo maggiore aenzione in seguio. Il real ime clock è un imer programmabile solo per generare inerruzioni a cadenza prefissaa, senza inerazione con l eserno. Simone Buso - Microconrollori e DSP - Lezione 18 22 Wachdog Timer Il wachdog imer opera sempre in free-run. Una vola aivao, è un in grado di generare una richiesa di inerruzione di ipo non mascherabile, generalmene in corrispondenza del verificarsi della condizione di overflow. L inerruzione può essere usaa per scopi diversi. Molo comune è il caso in cui essa sia usaa per rivelare e correggere alcuni ipi di anomalie in un algorimo di conrollo. queso scopo, si prevede che l ulima azione dell algorimo sia il rese del wachdog imer, che ne impedisca l overflow. Simone Buso - Microconrollori e DSP - Lezione 18 23 Wachdog Timer Se l algorimo non arriva a ermine in modo correo enro il periodo del wachdog, queso non verrà reseao e quindi genererà una inerruzione per il processore, che dovrà rispondere (NMI). lla ISR può essere associaa una rouine di rese per il mc, che consena di rivelare il malfunzionameno e, se possibile, di far riparire il sisema da condizioni noe. In queso modo si può impedire ad esempio che il sisema resi inrappolao per empi indefinii in siuazioni di sallo. Simone Buso - Microconrollori e DSP - Lezione 18 24
Ini: Loop: Check: Configurazione esa Eveno Risposa Eveno RESET Wachdog JMP Loop Wachdog Timer Se l eveno aeso non si verifica, il programma porebbe resare bloccao per empi indefinii. Tuavia, se il wachdog non viene reseao, si produrrà un overflow e quindi un uscia dal blocco quando queso inerrompe il processore con una NMI. Simone Buso - Microconrollori e DSP - Lezione 18 25 Il DSP DMC401 di nalog Devices è doao di diversi ipi di imer: 1. wachdog imer; 2. unià di even capure (ETU); 3. inerfaccia verso encoder (EIU); 4. PWM. Le unià 3 e 4 qualificano il disposiivo per l uso come moion conroller (MC). pplicazione di riferimeno sono quindi i diversi ipi di azionameno elerico, sia monofase che rifase. Simone Buso - Microconrollori e DSP - Lezione 18 26 Regisri di appoggio e configurazione Schema a blocchi della periferica di iming (ETU) del DSP DMC401 di nalog Devices. Il sisema prevede due ingressi di capure e un imer a 16 bi. Simone Buso - Microconrollori e DSP - Lezione 18 27 Regisro di configurazione dell unià ETU. I bi in grigio sono riservai e non devono essere sovrascrii dall uene. Il regisro definisce il modo di funzionameno delle due unia di capure. Simone Buso - Microconrollori e DSP - Lezione 18 28 La frequenza di coneggio è derivaa da quella di clock, divisa per un numero specificao dall uene in un apposio regisro a 16 bi (ETUDIVIDE). Il funzionameno può essere di ipo free-run o single-sho. L inerruzione è generaa al verificarsi di una sequenza di eveni, specificaa dall uene con il regisro di configurazione (ETUCONFIG). I valori del imer a ciascun eveno sono salvai nei regisri a 16 bi ETU0, ETUB0, ec. La definizione dell eveno di capure è piuoso flessibile. Esso è definibile come: 1. un eveno di ipo B; 2. una sequenza B. Ciascun eveno ( o B) può essere definio indipendenemene come il verificarsi di un frone di salia oppure di un frone di discesa sul pin di ingresso dell unià capure selezionaa (ETU0 oppure ETU1). Queso permee di raare numerose siuazioni di ineresse praico. Simone Buso - Microconrollori e DSP - Lezione 18 29 Simone Buso - Microconrollori e DSP - Lezione 18 30
Esempio 2: PIC18F452 Il microconrollore PIC18F452 è doao di 4 unià di imer, con caraerisiche diverse. L unià TIMER0 è un imer general purpose (GPT), adao alla gesione di processi leni. Le unià 1 e 3, sono invece doae di funzioni di capure. Infine, l unià 2 è pensaa per operare come modulaore PWM. Ciascuna unià ha un regisro di configurazione che comprende una sezione di prescaler, per fissare la frequenza di coneggio. Simone Buso - Microconrollori e DSP - Lezione 18 31 Esempio 2: PIC18F452 Schema a blocchi del TIMER0 del PIC18F452 di Microchip. Il imer funziona sia a 8 che a 16 bi. Si raa di un GPT, senza funzioni specifiche. Simone Buso - Microconrollori e DSP - Lezione 18 32 Esempio 2: PIC18F452 Schema a blocchi del TIMER1 del PIC18F452 di Microchip. Il imer funziona a 16 bi. Si raa di un imer con funzioni di capure. Simone Buso - Microconrollori e DSP - Lezione 18 33 Esempio 2: PIC18F452 Queso mc dispone di 2 unià di capure indipendeni, ciascuna associabile a uno di due diversi imer (TMR1 e TMR3). È possibile salvare il coneggio del imer selezionao su un opporuno regisro (CCPR1 o CCPR2) al verificarsi dell eveno di capure, che può essere definio come: 1. un frone di discesa sul pin CCP1 o CCP2; 2. un frone di salia; 3. la sequenza di 4 froni di salia; 4. la sequenza di 16 froni di salia. Simone Buso - Microconrollori e DSP - Lezione 18 34 Esempio 3: Philips LP2129 Il microconrollore Philips LP2129 è doao di numerose unià imer a 32 bi. Le principali funzioni associae ai diversi imer sono: 1. capure and compare su 4 canali; 2. PWM su 6 canali; 3. real ime clock; 4. wach dog imer. Ciascuna di quese funzioni prevede un insieme di regisri di configurazione. Simone Buso - Microconrollori e DSP - Lezione 18 35 Esempio 3: Philips LP2129 Schema a blocchi dell unià capure and compare. E possibile decidere il ipo di azione da eseguire al verificarsi dell eveno araverso il regisro di conrollo. La frequenza di coneggio è quella del processore divisa per un prescale. Simone Buso - Microconrollori e DSP - Lezione 18 36
Esempio 3: Philips LP2129 Nel funzionameno da capure, l eveno può essere rappresenao da una sequenza 0, 1 (frone di salia) oppure da una sequenza 1, 0 (frone di discesa) che si verifica su uno dei 3 pin di inpu abiliabili a queso scopo. È possibile abiliare quese due opzioni anche insieme, oenendo il salvaaggio del imer ad ogni frone che si verifichi su ciascuno dei pin di ingresso. L unià di capure è sdoppiaa, ossia possono essere usai addiriura 2 imer diversi simulaneamene. Simone Buso - Microconrollori e DSP - Lezione 18 37 Uso del imer L uso di una unià di imer di un mc o DSP compora la configurazione di un cero numero di regisri. La prima scela che deve essere effeuaa è quella relaiva alla frequenza di coneggio. È sempre possibile oenere una riduzione della frequenza di coneggio rispeo al suo valore massimo, che è la frequenza di clock del processore, usando un regisro di prescale. I due faori da valuare sono: duraa del coneggio massimo e risoluzione del coneggio. Simone Buso - Microconrollori e DSP - Lezione 18 38 Uso del imer Il rapporo ra il massimo inervallo misurabile e la risoluzione della misura è, ovviamene, cosane e pari a 2 n, dove n è il numero di bi del conaore. Un basso valore del faore di prescale permee elevae risoluzioni (i.e. elevaa capacià di separare eveni poco disani nel empo), ma riduce il massimo inervallo di empo che può essere misurao. Inversamene, un elevao valore del faore di prescale permee di misurare inervalli di empo molo lunghi, ma riduce la risoluzione. Simone Buso - Microconrollori e DSP - Lezione 18 39 Esempio Uso del imer Timer a 16 bi con prescaler a 16 bi e frequenza di clock del processore di 10 MHz. Massimo inervallo misurabile: 429 s Massima risoluzione: 100 ns Massimo inervallo misurabile alla massima risoluzione: 6.5 ms È comunque possibile esendere il massimo inervallo misurabile ricorrendo a regisri eserni al imer o alla memoria. Simone Buso - Microconrollori e DSP - Lezione 18 40 Uso del imer seconda dell applicazione, si deve poi imposare la modalià di funzionameno del conaore. I faori da considerare sono ad esempio: modo single-sho o free-run, generazione di inerruzione oppure funzionameno in modalià compare senza inerruzioni, funzionameno in modalià capure. In ques ulimo caso deve anche essere definia la sequenza di eveni che deermina la leura del valore del imer. Simone Buso - Microconrollori e DSP - Lezione 18 41 Uso del imer Le applicazioni più ineressani sono: 1. generazione di impulsi di comando con riardo programmabile rispeo ad eveni predefinii; 2. misure di empo, di frequenza o di alre grandezze se il rasduore ha una uscia di ipo PWM o FM; 3. sincronizzazione di processi; 4. modulazione PWM per il conrollo di converiori saici (e.g. quelli usai in prodoi come azionameni elerici, UPS, elerodomesici vari) o alre applicazioni. Simone Buso - Microconrollori e DSP - Lezione 18 42
Esempio di uso del imer Consideriamo come primo semplice esempio l uso del imer del mc LP2129 per la realizzazione di un segnale a onda quadra a frequenza fissaa e regolabile. I imer dell LP2129 permeono di fissare lo sao di un pin di uscia del mc al verificarsi della condizione di compare. Per quesa applicazione, converrà quindi usare un imer in modalià free-run e compare, in modo da deerminare il periodo dell onda quadra agendo proprio sul compare. Simone Buso - Microconrollori e DSP - Lezione 18 43 Configurazione del imer Dal manuale del mc apprendiamo che i imer si configurano agendo sui segueni regisri: Timer Conrol Regiser TCR: 0xE0004004 Prescale Regiser PRC: 0xE000400C Mach Regiser MR: 0xE0004018 Mach Conrol Regiser MCR: 0xE0004014 Exernal Mach Regiser EMR: 0xE000403C dei quali è daa la denominazione e l indirizzo al quale sono mappai nella memoria del mc. Tui i regisri sono in realà doppi in quano ci sono due unià imer equivaleni (T0 e T1). Simone Buso - Microconrollori e DSP - Lezione 18 44 Configurazione del imer Il regisro TCR ha la funzione di abiliare o disabiliare il imer e di permeerne il rese (azzerameno del coneggio). Scrivendo su ale regisro il valore 0x00000001 il imer è abiliao, scrivendo il valore 0x0000000 esso è disabiliao. Scrivendo invece il valore 0x00000002 si induce il rese del imer e del prescaler. Per far riparire il imer è necessario che il bi 1 del TCR sia poso nuovamene a 0. Simone Buso - Microconrollori e DSP - Lezione 18 45 Configurazione del imer Il regisro PRC coniene un faore di divisione per il clock da inviare al imer rispeo a quello di sisema (pclk che può essere diverso da cclk, come abbiamo viso). Scrivendo il valore 0x00000000 su ale regisro, si oiene il passaggio di ui gli impulsi di clock. La frequenza di coneggio divena così pari a quella di pclk (massima risoluzione, minimo inervallo massimo). Quesa scela fissa quindi il valore del massimo periodo dell onda quadra che si può generare: P MX = 2 32 T pclk 1432 s. Simone Buso - Microconrollori e DSP - Lezione 18 46 Configurazione del imer Il regisro MR coniene il coneggio al quale viene generaa la condizione di mach ovvero di compare. l verificarsi della condizione, il mc dà luogo alle azioni decise configurando il regisro MCR, ossia a una ra: 1. rese conaore + inerrup (opzionale); 2. arreso conaore + inerrup (opzionale); 3. solo inerrup e funzionameno coninuo; Da noare che per ciascun imer sono disponibili 4 regisri di mach, il che rende possibili funzionameni piuoso aricolai. Simone Buso - Microconrollori e DSP - Lezione 18 47 Configurazione del imer Nel nosro caso può basare il rese del conaore, che riparirà quindi a conare da 0 dopo ogni mach. Queso si oiene assegnando la sequenza di bi:.equ T0CFG, 0x00000002 al regisro MCR. Infine, assegnando la sequenza di bi:.equ PINCFG, 0x00000030 al regisro EMR, si oiene il oggle del pin di uscia del imer ad ogni mach. Simone Buso - Microconrollori e DSP - Lezione 18 48
Configurazione del pin di uscia Molo spesso, i pin di I/O di un mc sono in numero minore rispeo alle esigenze di ue le periferiche preseni a bordo. Ne consegue che uno sesso pin può svolgere differeni funzioni e deve quindi essere adeguaamene configurao. È di norma presene un muliplexer che connee un dao pin ad una daa periferica, in base alla programmazione dell uene. Il nosro mc non fa eccezione. Infai, dispone di un opporuno regisro (PINSEL0, 0xE002C000) per le assegnazioni dei pin. Simone Buso - Microconrollori e DSP - Lezione 18 49 Esempio di uso del imer In modo analogo, è possibile configurare il imer per lo svolgimeno di una funzione di capure. Quesa può essere usaa, ad esempio, per la misura del periodo di un segnale presene in ingresso. In queso caso, il imer viene fao operare in modalià free-run. l verificarsi dell eveno di capure il coneggio viene salvao in un apposio regisro. Il programma uene provvede ad elaborare queso dao, esraendone la misura del periodo. Simone Buso - Microconrollori e DSP - Lezione 18 50 Esempio di uso del imer In queso caso, essendo richiesa una minima elaborazione della CPU, conviene ricorrere alla gesione del imer araverso una ISR. ssegnando la sequenza di bi:.equ VICIn_CFG, 0x00000010 ai due regisri VICInEnable e VICInSelec si oiene l aivazione dell inerrup del imer e la sua classificazione come FIQ. In modo analogo a quano fao per il filro passa basso, si dispone quindi il salo alla ISR nel veore delle inerruzioni. Simone Buso - Microconrollori e DSP - Lezione 18 51 Configurazione del imer Il imer viene abiliao dopo aver fissao il pre-scale (e.g. a 0 in modo da avere la massima risoluzione). In queso caso conviene anche fissare il clock delle periferiche, pclk, allo sesso quello inerno cclk (per defaul è imposao a ¼ di ale valore). Così la risoluzione dell eveno di capure diverrà pari a 1/f clk 83.3 ns. La configurazione della funzione di capure prevede di decidere quale sia l eveno da regisrare: un frone di salia, un frone di discesa o enrambi. Simone Buso - Microconrollori e DSP - Lezione 18 52 Configurazione del imer Imposando la sequenza di bi:.equ T0CCR_CFG, 0x00000005 sul Capure Conrol Regiser, CCR, indirizzo 0xE0004028, si oiene la rilevazione di un frone di salia sul pin di capure C0.0 (ce ne sono quaro che possono essere connessi anche a più di un pin eserno ciascuno) e la conemporanea generazione di una IR. Provvedendo come prima alla configurazione del pin di ingresso ramie il regisro PINSEL0, la configurazione è ulimaa. Simone Buso - Microconrollori e DSP - Lezione 18 53 Elaborazione del dao La nosra ISR deve semplicemene: 1. rimuovere la richiesa di inerrup (che alrimeni resa aiva!); 2. leggere il regisro di capure CCR0; 3. sorarre il valore leo al precedene; 4. scrivere in memoria il risulao. N.B. Nell eseguire il puno 3, non è necessario preoccuparsi dell evenuale overflow del conaore (ricordare la rappresenazione circolare dei numeri in complemeno a 2). Ora siamo proni per il es del codice! Simone Buso - Microconrollori e DSP - Lezione 18 54