[RISOLTO] interrupt PIC18

12 Anni 8 Mesi fa - 12 Anni 7 Mesi fa #1 da paolotherocker
[RISOLTO] interrupt PIC18 è stato creato da paolotherocker
salve a tutti.
sto cominciando adesso ad approcciarmi alla gestione delle interruzioni nel pic18 (con la freedom II) e mi sorge un piccolo dubbio. Ho fatto un semplice programma che a ciclo infinito, nel main, fa lampeggiare un led, e all'occorrenza dell'interruzione lanciata su PORTB (un tasto sulla scheda), accende un altro led. Il problema è che non so come fare in modo che il programma ritorni al ciclo infinito contenuto nel main. Una volta avvenuta la prima interruzione, sembra che esegua ciclicamente la funzione per la gestione della stessa. Facendo un debug vedo che salta in un punto "a caso" (sempre lo stesso ovviamente) e poi ritorna ad eseguire la funzione dell'interruzione.
grazie in anticipo per i suggerimenti,
Paolo
Ultima Modifica 12 Anni 7 Mesi fa da paolotherocker.

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

  • paolotherocker
  • Visitatori
  • Visitatori
12 Anni 7 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: interrupt PIC18
Ciao,

avere il sorgente sotto mano puo' aiutare, se lo posti si possono vedere meglio eventuali problemi.

In ogni modo dal modo con cui hai descritto il problema penserei che tu non abbia resettato il flag associato all'interruzione all'itnerno della funzione di gestione della stessa. Quindi all'uscita dalla funzione ISR (Interrupt Service Routine), essendo il flag ancora settato viene riattivata la routine per l'interruzione...fino all'infinito..!

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 7 Mesi fa #3 da paolotherocker
Risposta da paolotherocker al topic Re: interrupt PIC18

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • paolotherocker
  • Visitatori
  • Visitatori
12 Anni 7 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: interrupt PIC18
Ciao,

non ho controllato i dettagli del singolo bit impostato ma mi sembra corretto.
La funzione wait essendo bloccante non giustifica realmente l'utilizzo del timer.

Prova a ascrivere dentro la funzione semplicemente un semplice for e semplificare il tutto.

In ogni modo se utilizzassi il timer alcune inizializzazioni possono essere portare fuori dal timer stesso.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 7 Mesi fa #5 da paolotherocker
Risposta da paolotherocker al topic Re: interrupt PIC18
grazie mille per il consiglio, ma avevo già risolto...proprio nel modo che dici tu :) . Inoltre sono anche riuscito a farlo funzionare in questo modo qui disattivando attentamente l'interrupt per il timer

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

  • paolotherocker
  • Visitatori
  • Visitatori
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