- Messaggi: 65
- Ringraziamenti ricevuti 0
ridurre tempi di latenza INT0
8 Anni 5 Mesi fa #1
da giannic
ridurre tempi di latenza INT0 è stato creato da giannic
Salve di nuovo a tutti voi..
Vorrei accendere un led sfruttando l'interruzione esterna INT0 di un 18f4550 @20MHZ pero' mi ritrovo che tra l'evento che fa scattare l'interrupt (in questo caso sul fronte di discesa) e l'accensione del led(diciamo RD0 per esempio) trascorre troppo tempo che a me risulta essere vicino ai 10us. misurato con un oscilloscopio
Ho esigenza che tale operazione debba essere contenuta in massimo 1us e sto cercando di capire come posso risolvere questo problema.
ho provato ad usare anche il modulo CCP in modalita' capture ma siamo sempre allo stesso punto.
Eventualmente volendo scegliere un altro tipo o famiglia di pic come dovrei procedere ?
grazie
Vorrei accendere un led sfruttando l'interruzione esterna INT0 di un 18f4550 @20MHZ pero' mi ritrovo che tra l'evento che fa scattare l'interrupt (in questo caso sul fronte di discesa) e l'accensione del led(diciamo RD0 per esempio) trascorre troppo tempo che a me risulta essere vicino ai 10us. misurato con un oscilloscopio
Ho esigenza che tale operazione debba essere contenuta in massimo 1us e sto cercando di capire come posso risolvere questo problema.
ho provato ad usare anche il modulo CCP in modalita' capture ma siamo sempre allo stesso punto.
Eventualmente volendo scegliere un altro tipo o famiglia di pic come dovrei procedere ?
grazie
Si prega Accedi o Crea un account a partecipare alla conversazione.
- giannic
- Autore della discussione
- Senior Member
Riduci
Di più
8 Anni 5 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic ridurre tempi di latenza INT0
controlla il codice assembly e il numero di istruzioni che vengono eseguite.
...ma come ordine di grandezza ci siamo.
considera che ogni istruzione aggiunge 4 cicli di clock di ritardo.
...poi c'è l'interrupt.
Il PIC18F4550 lo puoi usare a frequenze maggiori, per cui puoi scendere a tempi di "risposta" di circa 5us.
...comunque se hai esigenze cosi stringenti il PIC18F4550 potrebbe non essere la tua soluzione o dovresti usare componenti esterni di supporto.
Saluti,
Mauro
...ma come ordine di grandezza ci siamo.
considera che ogni istruzione aggiunge 4 cicli di clock di ritardo.
...poi c'è l'interrupt.
Il PIC18F4550 lo puoi usare a frequenze maggiori, per cui puoi scendere a tempi di "risposta" di circa 5us.
...comunque se hai esigenze cosi stringenti il PIC18F4550 potrebbe non essere la tua soluzione o dovresti usare componenti esterni di supporto.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
8 Anni 5 Mesi fa #3
da giannic
Risposta da giannic al topic ridurre tempi di latenza INT0
Grazie Mauro per il tuo interessamento.Nel pdf del 18F4550 ho trovato questa pagina :
For external interrupt events, such as the INT pins or the PORTB input change interrupt, the interrupt latency will be three to four instruction cycles. The exact latency is the same for one or two-cycle instructions. Individual interrupt flag bits are set regardless of the status of their corresponding enable bit or the GIE bit.
Non ho ancora verificato il codice disassemblato però ad occhio mi sembra tanto tempo per poter eseguire un operazione di questo tipo....
Sto ipotizzando che ci siano altri fattori che incidono sui tempi ad esempio ottimizzazione in fase di compilazione oppure versione free di xc8 o cose del genere.
Vorrei continuare ad utilizzare il 18f4550 e applicare tutte le strategie possibili perlomeno per avvicinarmi a 1us.
Gianni
For external interrupt events, such as the INT pins or the PORTB input change interrupt, the interrupt latency will be three to four instruction cycles. The exact latency is the same for one or two-cycle instructions. Individual interrupt flag bits are set regardless of the status of their corresponding enable bit or the GIE bit.
Non ho ancora verificato il codice disassemblato però ad occhio mi sembra tanto tempo per poter eseguire un operazione di questo tipo....
Sto ipotizzando che ci siano altri fattori che incidono sui tempi ad esempio ottimizzazione in fase di compilazione oppure versione free di xc8 o cose del genere.
Vorrei continuare ad utilizzare il 18f4550 e applicare tutte le strategie possibili perlomeno per avvicinarmi a 1us.
Gianni
Si prega Accedi o Crea un account a partecipare alla conversazione.
- giannic
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 65
- Ringraziamenti ricevuti 0
7 Anni 10 Mesi fa #4
da Bolt
Quando si trova e si corregge un errore, si vedrà che andava meglio prima.
Risposta da Bolt al topic ridurre tempi di latenza INT0
Ciao, anche se il topic e abbastanza vecchio e forse hai risolto da te volevo chiederti visto che hai esigenze di tempi cosi precise se per caso la tua intenzione e quella di realizzare un orologio oppure un temporizzatore, in questo caso potrei esserti utile in quanto ho gia testato un programma basato sul algoritmo di Bresenham's e sviluppato da Roman Black che genera un periodo di un secondo esatto.
Quando si trova e si corregge un errore, si vedrà che andava meglio prima.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Bolt
- New Member
Riduci
Di più
- Messaggi: 13
- Ringraziamenti ricevuti 1
7 Anni 10 Mesi fa #5
da giannic
Risposta da giannic al topic ridurre tempi di latenza INT0
ciao bolt ... ho esigenza di tempi cosi' ristretti perche'sto realizzando un attuatore meccanico che funge da servo in un sistema cnc e deve eseguire delle funzioni estremamente veloci e quindi devo recuperare tempo prezioso.
diciamo che ho risolto buttandomi sulle brutte strade ossia passando ai pic32 che hanno caratteristiche migliori...
unico problema imparare tutto da zero .
diciamo che ho risolto buttandomi sulle brutte strade ossia passando ai pic32 che hanno caratteristiche migliori...
unico problema imparare tutto da zero .
Si prega Accedi o Crea un account a partecipare alla conversazione.
- giannic
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 65
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.