ildani ha scritto:Candy ha scritto:E Qui si impara a programmare ed ogttimizzare il codice... Tra registri da salvare e ripristinare oltre che molte if da controllare, si rischia che ad ogni uscita sia gia' ora di rientrare...
Non ci puoi mettere queste pulci nell'orecchio e poi lasciarci a bocca asciutta senza un esempio
Quando si lavora con i PIC16, (ma anche negli altri casi), se si vuole che il codice funzioni sempre bene, bisogna, sia in entrata della ISR, che prima della uscita, salvare e rinfrescare tutti i registri essenziali e quelli di appoggio, per evitare di perdere o spocare i dati. In assembler è un obbligo, altri compilatori più evoluti lo fanno da soli. Quindi la routine ISR ha una testa ed una coda lunghetta. Se in più ci aggiungi il controllo di alcuni interruot, (e c'è solo la possibilità di interrogarli uno ad uno), e poi inizi ad elaborare un programma lunghetto, quando la ISR si concluse, riattivando il bit GIE, il PIC si ritrova altre chiamate di interrupt saltando nuovamente in testa alla ISR.
Fortunatamente sono stati intelligenti nello sviluppo dell'oggetto: a livello hardware la chiamata dell'interrupt disattiva il bit GIE e l'uscita dall'ISR è possibile con l'istruzione RETFIE che, guarda caso, riattiva il GIE. Questo permette si di evitare chiamate intempestive della ISR mentre la si sta ancora elaborando, (sarebbe disastroso per il PIC16), ma, in ogni caso, una ISR troppo lunga e grassa non fa altro che portare il PIC ad un eterno loop su se stessa. (nella ipotesi ad esempio di lavorare col timer TMR0 con interrupt abilitato, od interrupt esterni veloci).
Gli interrupt sono essenziali, indubbiamente, ma attenzione...

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

