- Messaggi: 24
- Ringraziamenti ricevuti 0
Lettura posizione cursore display 2x16 con controller 44780
12 Anni 5 Mesi fa - 12 Anni 5 Mesi fa #1
da Armando
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.
Lettura posizione cursore display 2x16 con controller 44780 è stato creato da Armando
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.
- Armando
- Autore della discussione
- Junior Member
Riduci
Di più
12 Anni 5 Mesi fa - 12 Anni 5 Mesi fa #2
da Armando
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 Armando al topic Re: Lettura posizione cursore display 2x16 con controller 44780
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.
- Armando
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 24
- Ringraziamenti ricevuti 0
12 Anni 5 Mesi fa #3
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Lettura posizione cursore display 2x16 con controller 44780
le impostazioni sembrerebbero ok.
Come imposti il valore su RB1 e RB5?
Come leggi via software il valore dei bit?
Ti consiglio di ridurre il programma alla funzione che non ti funziona in maniera da focalizzare i test e facilitare la comprensione del problema.
Saluti,
Mauro
Come imposti il valore su RB1 e RB5?
Come leggi via software il valore dei bit?
Ti consiglio di ridurre il programma alla funzione che non ti funziona in maniera da focalizzare i test e facilitare la comprensione del problema.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
12 Anni 5 Mesi fa #4
da Armando
Risposta da Armando al topic Re: Lettura posizione cursore display 2x16 con controller 44780
Ciao Mauro,
il PIC sui fronti di salita di un segnale di clock (correttamente rilevati su RB4) deve campionare un segnale digitale.
Ho quindi abilitato le interruzioni (ad alta priorità) sulla PORTB e dalla ISR di volta in volta leggo il bit da acquisire.
Se leggo da RB5 tutto funziona come previsto (a meno delle inutili interruzioni generate dai fronti del segnale che non interessano minimamente e per i quali devo resettare il flag di interruzione).
Se invece leggo da un pin differente (su cui non è abilitata l'interruzione) come l'RB1 non leggo correttamente il segnale. Preferirei usare RB1 proprio per avere interruzioni solo sui fronti del segnale di clock...
Preferendo ad esempio RB1 ad RB5 per acquisire il segnale, credo sia da cambiare solo il valore assegnato a TRISB (da 0b00110000 a 0b00010010) ed il bit da salvare (da LATBbits.RB5 a LATBbits.RB1).
Mi è sorto il dubbio che la lettura (del segnale) non debba avvennire nella ISR ed ho quindi usato una flag settata dalla ISR (e resettata dal main) con la quale affido al main (all'uscita della ISR) la lettura del bit LATBbits.RB1. Nulla è cambiato. Ho verificato che anche con questa modifica (con ISR più "snella") la lettura da LATBbits.RB5 funziona a dovere.
Potrei ignorare il problema visto che il programma funziona.
Ma è evidente che deve funzionare anche su porte diverse, cosa che al momento non mi riesce...
Grazie ancora!
Armando
il PIC sui fronti di salita di un segnale di clock (correttamente rilevati su RB4) deve campionare un segnale digitale.
Ho quindi abilitato le interruzioni (ad alta priorità) sulla PORTB e dalla ISR di volta in volta leggo il bit da acquisire.
Se leggo da RB5 tutto funziona come previsto (a meno delle inutili interruzioni generate dai fronti del segnale che non interessano minimamente e per i quali devo resettare il flag di interruzione).
Se invece leggo da un pin differente (su cui non è abilitata l'interruzione) come l'RB1 non leggo correttamente il segnale. Preferirei usare RB1 proprio per avere interruzioni solo sui fronti del segnale di clock...
Preferendo ad esempio RB1 ad RB5 per acquisire il segnale, credo sia da cambiare solo il valore assegnato a TRISB (da 0b00110000 a 0b00010010) ed il bit da salvare (da LATBbits.RB5 a LATBbits.RB1).
Mi è sorto il dubbio che la lettura (del segnale) non debba avvennire nella ISR ed ho quindi usato una flag settata dalla ISR (e resettata dal main) con la quale affido al main (all'uscita della ISR) la lettura del bit LATBbits.RB1. Nulla è cambiato. Ho verificato che anche con questa modifica (con ISR più "snella") la lettura da LATBbits.RB5 funziona a dovere.
Potrei ignorare il problema visto che il programma funziona.
Ma è evidente che deve funzionare anche su porte diverse, cosa che al momento non mi riesce...
Grazie ancora!
Armando
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Armando
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 24
- Ringraziamenti ricevuti 0
12 Anni 5 Mesi fa #5
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Lettura posizione cursore display 2x16 con controller 44780
Ciao Armando,
le interruzioni sul pin RB1 e RB5 sono diverse.
Il gruppo RB4 e RB7 ha una tipologia di interruzione e setta un flag.
RB0 e RB1 settano un altro flag (associato alle interruzioni INT).
Quindi devi cambiare in maniera opportuna l'Interrupt Service Routine al fine da identificare il pin (flag) che ha generato l'interruzione.
Saluti,
Mauro
le interruzioni sul pin RB1 e RB5 sono diverse.
Il gruppo RB4 e RB7 ha una tipologia di interruzione e setta un flag.
RB0 e RB1 settano un altro flag (associato alle interruzioni INT).
Quindi devi cambiare in maniera opportuna l'Interrupt Service Routine al fine da identificare il pin (flag) che ha generato l'interruzione.
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