Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

PIC e ricezione telecomando infrarossi

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[31] Re: PIC e ricezione telecomando infrarossi

Messaggioda Foto Utentesorecaro » 9 ott 2015, 19:17

Foto UtenteIlGuru non credo sia un problema di interrupt. Stasera provo e ti faccio sapere
Avatar utente
Foto Utentesorecaro
36 3 7
Frequentatore
Frequentatore
 
Messaggi: 233
Iscritto il: 26 feb 2013, 19:30

0
voti

[32] Re: PIC e ricezione telecomando infrarossi

Messaggioda Foto UtentePaolino » 11 ott 2015, 8:45

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
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,0k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4186
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[33] Re: PIC e ricezione telecomando infrarossi

Messaggioda Foto UtenteIlGuru » 11 ott 2015, 13:33

Se consideri 1 > 16 e 0 < 16 risparmi una if.
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
4.134 1 10 13
Master
Master
 
Messaggi: 1373
Iscritto il: 31 lug 2015, 23:32

0
voti

[34] Re: PIC e ricezione telecomando infrarossi

Messaggioda Foto Utentesorecaro » 11 ott 2015, 19:41

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
Avatar utente
Foto Utentesorecaro
36 3 7
Frequentatore
Frequentatore
 
Messaggi: 233
Iscritto il: 26 feb 2013, 19:30

0
voti

[35] Re: PIC e ricezione telecomando infrarossi

Messaggioda Foto UtenteIlGuru » 11 ott 2015, 23:13

Ottimo. Ora puoi pensare a come migliorare il codice e renderlo più performante
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
4.134 1 10 13
Master
Master
 
Messaggi: 1373
Iscritto il: 31 lug 2015, 23:32

Precedente

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti