Acquisizione segnale IR protocollo RC-5
12 Anni 9 Mesi fa #16
da Video Lab
Volere è Potere
Risposta da Video Lab al topic Re: Acquisizione segnale IR protocollo RC-5
Il TMR0 lo inizializzo tramite la funzione setting, e ad ogni ISR lo ricarico.
Quindi le due parti di programma in realtà vengono svolte nelle medisime condizioni.
E' sempre più un mistero....
Quindi le due parti di programma in realtà vengono svolte nelle medisime condizioni.
E' sempre più un mistero....
Volere è Potere
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Video Lab
- Autore della discussione
- Premium Member
Riduci
Di più
12 Anni 9 Mesi fa #17
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Acquisizione segnale IR protocollo RC-5
Ciao,
se inizializzi TMR0 con la funzione setting vuol dire che nel primo blocco per il controllo del pulsante del telecomando hai TMR0 = 119 ma al secondo blocco questo parte da un valore non determinato.
Infatti dentro la ISR blocchi l'interrupt e non il timer, il quale continua il suo conteggio tra le due parti di codice che controllano il pulsate e porta TMR0 in overflow e a iniziare il conteggio. La ISR non viene richiamata perche' le interruzioni sono disabilitate.
TMR0 non viene inizializzato tra la prima e seconda lettura e a seconda del suo valore puo' o meno leggere il primo bit in maniera corretta. Dovresti quindi inizializzare il TMR0 anche prima della seconda lettura.
Saluti,
Mauro
se inizializzi TMR0 con la funzione setting vuol dire che nel primo blocco per il controllo del pulsante del telecomando hai TMR0 = 119 ma al secondo blocco questo parte da un valore non determinato.
Infatti dentro la ISR blocchi l'interrupt e non il timer, il quale continua il suo conteggio tra le due parti di codice che controllano il pulsate e porta TMR0 in overflow e a iniziare il conteggio. La ISR non viene richiamata perche' le interruzioni sono disabilitate.
TMR0 non viene inizializzato tra la prima e seconda lettura e a seconda del suo valore puo' o meno leggere il primo bit in maniera corretta. Dovresti quindi inizializzare il TMR0 anche prima della seconda lettura.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
12 Anni 9 Mesi fa #18
da Video Lab
Volere è Potere
Risposta da Video Lab al topic Re: Acquisizione segnale IR protocollo RC-5
Provo e ti faccio sapere.
Ciao e grazie
Ciao e grazie
Volere è Potere
Si prega Accedi o Crea un account a partecipare alla conversazione.
12 Anni 9 Mesi fa - 12 Anni 9 Mesi fa #19
da Video Lab
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.
Risposta da Video Lab al topic Re: Acquisizione segnale IR protocollo RC-5
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.
12 Anni 9 Mesi fa #20
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Acquisizione segnale IR protocollo RC-5
Ciao Nino,
i conti non mi tornano.
Dici che il TMR0 sia sempre inizializzato ma questo non mi sembra.
Che valore ha prima del secondo while?
Dove viene impostato?
La funzione LCD_CLEAR (), ameno che non sia gestita tramite interruzioni, dovrebbe essere simile ad un delay per cui durante la lettura del sensore, che avviene in interrupt, i bit dovrebbero comunque essere letti propriamente.
In realtà LCD_CLEAR () essendo in precedenza dopo il while, non viene comunque eseguita durante la lettura dei bit del comando, visto che il while e' bloccante fino alla fine del comando stesso.
Non ho scritto il programma quindi mi e' piu' difficile "entrarci" per un corretto debug, ma qualcosa non mi
torna.
Saluti,
Mauro
i conti non mi tornano.
Dici che il TMR0 sia sempre inizializzato ma questo non mi sembra.
Che valore ha prima del secondo while?
Dove viene impostato?
La funzione LCD_CLEAR (), ameno che non sia gestita tramite interruzioni, dovrebbe essere simile ad un delay per cui durante la lettura del sensore, che avviene in interrupt, i bit dovrebbero comunque essere letti propriamente.
In realtà LCD_CLEAR () essendo in precedenza dopo il while, non viene comunque eseguita durante la lettura dei bit del comando, visto che il while e' bloccante fino alla fine del comando stesso.
Non ho scritto il programma quindi mi e' piu' difficile "entrarci" per un corretto debug, ma qualcosa non mi
torna.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
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.
Login
© LaurTec 2006 - 2024