Pagina 4 di 4

Re: PIC e ricezione telecomando infrarossi

MessaggioInviato: 9 ott 2015, 19:17
da sorecaro
Foto UtenteIlGuru non credo sia un problema di interrupt. Stasera provo e ti faccio sapere

Re: PIC e ricezione telecomando infrarossi

MessaggioInviato: 11 ott 2015, 8:45
da Paolino
Foto Utentesorecaro, una domanda. Cosa accade nell'interrupt se il tempo_trascorso fosse per qualche motivo compreso tra 10 e 16? Guarda il tuo codice:
Codice: Seleziona tutto
         if(tempo_trascorso<10)
         {
            ricevo[incremento_byte]=0;
         }
         if(tempo_trascorso>16)
         {
            ricevo[incremento_byte]=1;
         }

Secondo me devo prendere una decisione in un caso diverso da <10 e >16. QUalcosa del tipo:

Codice: Seleziona tutto
         if(tempo_trascorso<10)
         {
            ricevo[incremento_byte]=0;
         } else if(tempo_trascorso>16)
         {
            ricevo[incremento_byte]=1;
         } else {
         /* AZIONE DA INTRAPRENDERE */
         }


Magari non è significativo per il funzionamento del tuo codice, ma a mio avviso rappresenta un modo per analizzare il problema in tutti i suoi casi possibili.

Paolo

Re: PIC e ricezione telecomando infrarossi

MessaggioInviato: 11 ott 2015, 13:33
da IlGuru
Se consideri 1 > 16 e 0 < 16 risparmi una if.

Re: PIC e ricezione telecomando infrarossi

MessaggioInviato: 11 ott 2015, 19:41
da sorecaro
Foto UtentePaolino e Foto UtenteIlGuru grazie per tutti i vostri consigli. Dopo varie prove e "modifiche" sono riuscito a far funzionare il codice. Ora il PIC fa quello che voglio, se premo il tasto "x" del telecomando attiva l'uscita "x", non si creano "blocchi", se premo un tasto non "associato" nel programma non succede nulla(prima si bloccava tutto).
Per "eliminare" i vari problemi ho usato il tmr0, ogni volta che il timer 0 va in overflow mi "resetta" tutto, sia interrupt "intcon.t0if" e sia le varie variabili "interessate. Se volete posto il codice completo

Re: PIC e ricezione telecomando infrarossi

MessaggioInviato: 11 ott 2015, 23:13
da IlGuru
Ottimo. Ora puoi pensare a come migliorare il codice e renderlo più performante