da
Paolino » 3 mar 2010, 16:04
I PIC sono macchine RISC con architettura Harvard (modificata). L'esecuzione di ciascuna istruzione avviene ogni 4 colpi di clock cioè alla frequenza Fcy = Fosc/4, dove Fosc è la frequenza dell'oscillatore principale. Fanno eccezione le istruzioni di salto (branch) per le quali per la loro esecuzione va considerato un tempo pari a 2Tcy, dove Tcy = 1/Fcy.
Ci sono poi altre eccezioni, quelle (che non riguardano il tuo caso) della risposta all'interrupt dove il tempo di latenza all'interrupt "prende qualche Tcy".
Ora, se leggi il datasheet è mostrato per ciascuna istruzione il valore del numero dei cicli macchina che vengono impiegati. Nel tuo caso si tratta di tre cicli annidati. Il modo migliore per verificare la durata di una routine è quella di simularla. Con MPLAB puoi abilitare MPSIM e verificare quanto dura. Un conto spannometrico mi fa risultare oltre 9 milioni di cicli macchima... Verificalo con MPSIM.
Ciao.
Paolo.