- Messaggi: 130
- Ringraziamenti ricevuti 11
IR decoder
9 Anni 1 Settimana fa #1
da Claudio_F
IR decoder è stato creato da Claudio_F
Su Internet ho trovato molti esempi su come realizzare un decodificatore di telecomandi IR, ma il software non sempre è chiaro e spesso in assembler, c'è qualche esempio con la scheda Freedom II
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Claudio_F
- Autore della discussione
- Premium Member
Riduci
Di più
9 Anni 1 Settimana fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic IR decoder
Salve Claudio,
un progetto che puoi usare con Freedom II lo trovi nel seguente articolo .
Lo devi ricompilare con il PIC che vuoi usare.
Saluti,
Mauro
un progetto che puoi usare con Freedom II lo trovi nel seguente articolo .
Lo devi ricompilare con il PIC che vuoi usare.
Saluti,
Mauro
Ringraziano per il messaggio: Claudio_F
Si prega Accedi o Crea un account a partecipare alla conversazione.
9 Anni 5 giorni fa #3
da Claudio_F
Risposta da Claudio_F al topic IR decoder
Ho letto l'articolo "UP0004-IT_Ricevitore_IR_ad_autoapprendimento" e naturalmente funziona, ma preferirei non avere il limite di 4 canali e usare l'ingresso CCP. Essendo completamente a digiuno sull'argomento ho seguito l'esempio a pag. 453 del tuo libro XC8 Step by Step. Con alcune modifiche ho buttato giù il listato che allego. ci sono alcuni punti che non vanno:
1) benche i valori letti dell'ampiezza degli impulsi siano corretti (vedi tabella allegata) poi la routine del display mostra sempre tutti 0.
2) una volta mostrati i valori dovrebbe ripredisporsi a leggere un nuovo codice. Suggerimenti? Grazie!
1) benche i valori letti dell'ampiezza degli impulsi siano corretti (vedi tabella allegata) poi la routine del display mostra sempre tutti 0.
2) una volta mostrati i valori dovrebbe ripredisporsi a leggere un nuovo codice. Suggerimenti? Grazie!
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Claudio_F
- Autore della discussione
- Premium Member
Riduci
Di più
- Messaggi: 130
- Ringraziamenti ricevuti 11
9 Anni 3 giorni fa #4
da fer_ver
Risposta da fer_ver al topic IR decoder
Ciao Claudio_F,
condivido la tua scelta di utilizzare il modulo CCP, quando ho realizzato il ricevitore IR ad autoapprendimento, Mauro non aveva ancora scritto XC8 step by step e non ero a conoscenza della potenzialità e programmazione di tale modulo.
Credo che leggi tutti 0 perché nell' istruzione:
if(step[conta]<<0x0300){ //800 dec
hai utilizzato due << anziché uno solo.
Inoltre aggiungerei alla fine dell'istruzione
for (conta = 12; conta > 0; conta--) {
....
.....
}
il seguente codice:
delay_ms(1000);
// Imposto la modalita' Capture sul fronte di discesa
CCP1CONbits.CCP1M0 = 0;
CCP1CONbits.CCP1M1 = 0;
CCP1CONbits.CCP1M2 = 1;
CCP1CONbits.CCP1M3 = 0;
edge = FALLING_EDGE;
in modo da fermare per un secondo il display e permettere una nuova lettura.
Tienici aggiornati
Ciao Renato
condivido la tua scelta di utilizzare il modulo CCP, quando ho realizzato il ricevitore IR ad autoapprendimento, Mauro non aveva ancora scritto XC8 step by step e non ero a conoscenza della potenzialità e programmazione di tale modulo.
Credo che leggi tutti 0 perché nell' istruzione:
if(step[conta]<<0x0300){ //800 dec
hai utilizzato due << anziché uno solo.
Inoltre aggiungerei alla fine dell'istruzione
for (conta = 12; conta > 0; conta--) {
....
.....
}
il seguente codice:
delay_ms(1000);
// Imposto la modalita' Capture sul fronte di discesa
CCP1CONbits.CCP1M0 = 0;
CCP1CONbits.CCP1M1 = 0;
CCP1CONbits.CCP1M2 = 1;
CCP1CONbits.CCP1M3 = 0;
edge = FALLING_EDGE;
in modo da fermare per un secondo il display e permettere una nuova lettura.
Tienici aggiornati
Ciao Renato
Si prega Accedi o Crea un account a partecipare alla conversazione.
- fer_ver
- Premium Member
Riduci
Di più
- Messaggi: 105
- Ringraziamenti ricevuti 12
9 Anni 1 Giorno fa #5
da Claudio_F
Risposta da Claudio_F al topic IR decoder
Grazie Renato, il suggerimento era corretto, ora esegue correttamente la lettura(allego il sorgente corretto) resta qualche problema nel prepararsi ad una nuova lettura dopo la decodifica, ma probabilmente devo inizializzare qualche variabile. Lo step successivo sarà quello di verificare se invece di 12bits ne vengono trasmessi 15 o 20, che sono gli altri due formati del protocollo Sony. Utilizzo questo protocollo perché a casa ho tutto Sony, era una mia fissa.
Ti metterò al corrente degli ulteriori sviluppi.
Approfitto per segnalare una piccola svista sul libro XC8_step_by_step. A pagina 455 nell'esempio sull'uso del CCP, ci sono queste due linee:
// Disabilito l'interrupt globale
INTCONbits.GIE = 1;
chiaramente è = 0. Me ne sono accorto perché se premevo i tasti sul telecomando il display continuava ad aggiornarsi.
Ti metterò al corrente degli ulteriori sviluppi.
Approfitto per segnalare una piccola svista sul libro XC8_step_by_step. A pagina 455 nell'esempio sull'uso del CCP, ci sono queste due linee:
// Disabilito l'interrupt globale
INTCONbits.GIE = 1;
chiaramente è = 0. Me ne sono accorto perché se premevo i tasti sul telecomando il display continuava ad aggiornarsi.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Claudio_F
- Autore della discussione
- Premium Member
Riduci
Di più
- Messaggi: 130
- Ringraziamenti ricevuti 11
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.