#define DELAY_INTERRUPT_BLOCKING

  • Silvy
  • Avatar di Silvy
  • Offline
  • New Member
  • New Member
Di più
2 Settimane 6 giorni fa #1 da Silvy
#define DELAY_INTERRUPT_BLOCKING è stato creato da Silvy
Saluto a tutti," #define DELAY_INTERRUPT_BLOCKING "
ho visto in un codice XC8 appunto questo include ma non ho trovato molte spiegazioni a riguardo.
Significa esattamente che durante un interrupt vengono bloccati i delay oppure anche altro ?
Grazie

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

Di più
2 Settimane 5 giorni fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic #define DELAY_INTERRUPT_BLOCKING
Salve,

il define serve per la libreria Delay.
In particolare il define blocca le interruzioni, o meglio controlla lo stato, disattiva le interruzioni e ripristina il tutto come prima della chiamata del delay,

I dettagli sono del codice C della libreria delay.

Il blocco delle interruzioni serve per evitare che se la funzione delay è usata nelle interrupt service routine (ISR), ci siano dei problemi.


Un tipico problema è usare il delay nel programma principale e usare le librerie LCD (che fanno uso della libreria delay) nelle interrupt service routine.
Usare aggiornamenti LCD nelle ISR non è buona pratica ma usare la libreria delay in entrami i posti crea problemi.

Infatti le variabili delay sarebbero usate sia nel main che nell'ISR e il risultato non è prevedibile.

Il define permette di bloccare le interruzioni ed evitare i problemi.

Saluti,

Mauro

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

  • Silvy
  • Avatar di Silvy
  • Offline
  • New Member
  • New Member
Di più
2 Settimane 5 giorni fa #3 da Silvy
Risposta da Silvy al topic #define DELAY_INTERRUPT_BLOCKING
Grazie per la tua puntuale spiegazione.
Un saluto
Silvy

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

Moderatori: Mauro LaurentiPinnaStefAMatteo Garia