Interrupt multipli

11 Anni 1 Mese fa #16 da bassfender
Risposta da bassfender al topic Interrupt multipli
e quindi se devo controllare/generare più interrupt come faccio ? Cmq potrei utlizzare la vecchia convenzione ? cioè qua non capisco dove mettere iù il settaggio dei bit di interuupt di portb/usart ecc ecc ... :( .. confusion ... :ohmy:

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • bassfender
  • Senior Member
  • Senior Member
Di più
11 Anni 1 Mese fa #17 da StefA
Risposta da StefA al topic Interrupt multipli

e quindi se devo controllare/generare più interrupt come faccio ?

esattamente come prima, cambia solo l'intestazione della funzione dell'interrupt e non serve più definire i vettori..

Cmq potrei utlizzare la vecchia convenzione ?

No, quella di prima si usa con C18, quella di adesso con XC8, ma non sono intercambiabili

qua non capisco dove mettere iù il settaggio dei bit di interuupt di portb/usart ecc ecc

Il settaggio dei bit di interrupt...cioè attivare e in quale modo gli interrupt, lo metti dove andava prima, nel main (di solito si mette dopo il settaggio delle porte e prima del codice).
Se poi intendevi i vari controlli sui bit per vedere quale periferica ha generato l'interrupt, anche quello rimane uguale, dentro la funzione dell'interrupt metti gli if per vedere chi l'ha chiamato.

Rimane tutto come prima, e si semplifica la definizione della funzione interrupt.
Prendi l'esempio di pag. 172 del libro di Mauro per vedere dove si scrivono le varie cose e modificalo per l'XC8.

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 6 giorni fa #18 da bassfender
Risposta da bassfender al topic Interrupt multipli
Ciao, tutto bene ? sto rileggendo quello che mi avevi scritto sugli interrupt, ma mettendo

__interrupt(low_priority) void nome_funzione_a(void)
{
// qui scrivi tutto il codice da eseguire quando scatta l'interrupt a bassa priorità
}


tutte le varie verifiche che mi avevi postato le metto tra le parentesi quadre ?

La differenza tra low priority ed high priority sta nel modo di gestire le itnerruzioni ?

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • bassfender
  • Senior Member
  • Senior Member
Di più
11 Anni 4 giorni fa #19 da StefA
Risposta da StefA al topic Interrupt multipli

tutte le varie verifiche che mi avevi postato le metto tra le parentesi quadre ?

Se per quadre intendi graffe, si vanno li dove c'è scritto:
// qui scrivi tutto il codice da eseguire quando scatta l'interrupt a bassa priorità

La differenza tra low priority ed high priority sta nel modo di gestire le itnerruzioni ?

High ha priorità maggiore di Low, quindi se sei dentro l'interrupt a bassa priorità e scatta quello ad alta si eseguono le istruzioni di quello ad alta e poi si torna alle istruzioni di quello a bassa, e poi si ritorna al programma che si stava eseguendo prima che scattasse quello a bassa.

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login