- Messaggi: 45
- Ringraziamenti ricevuti 0
LCD rallenta esecuzione programma ?
8 Anni 1 Mese fa - 8 Anni 1 Mese fa #1
da Guido72
LCD rallenta esecuzione programma ? è stato creato da Guido72
Buongiorno,
ho scritto un semplice programma per il conteggio di impulsi inviato su PORTB.
Il tutto viene letto da un LCD 16x2 tipico.
Ho riscontrato il seguente problema.
A frequenze (impulsi) molto basse il display conta correttamente ma a frequenze poco più elevate (anche soli 100Hz)
il tutto si inchioda.
Ora , visto che nel prog non sono implementate funzioni di delay , mi chiedevo se le istruzioni necessarie al funzionamento del LCD possano essere direttamente correlate al problema, dato che, se non sbaglio, queste fanno uso di funzioni delay.
Il pic è controllato da un XTAL esterno da 20Mhz percui direi veloce.
Al momento uso le librerie di Mauro HD44780.h / .c
Guido
ho scritto un semplice programma per il conteggio di impulsi inviato su PORTB.
Il tutto viene letto da un LCD 16x2 tipico.
Ho riscontrato il seguente problema.
A frequenze (impulsi) molto basse il display conta correttamente ma a frequenze poco più elevate (anche soli 100Hz)
il tutto si inchioda.
Ora , visto che nel prog non sono implementate funzioni di delay , mi chiedevo se le istruzioni necessarie al funzionamento del LCD possano essere direttamente correlate al problema, dato che, se non sbaglio, queste fanno uso di funzioni delay.
Il pic è controllato da un XTAL esterno da 20Mhz percui direi veloce.
Al momento uso le librerie di Mauro HD44780.h / .c
Guido
Ultima Modifica 8 Anni 1 Mese fa da Guido72. Motivo: irrilevante
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Guido72
- Autore della discussione
- Senior Member
Riduci
Di più
8 Anni 1 Mese fa #2
da Guido72
Risposta da Guido72 al topic LCD rallenta esecuzione programma ?
Ah...aggiungo che pur avendo inserito la funzione LCD_DEFAULT , continuo ad avere segnali di Warning durante la compilazione.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Guido72
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 45
- Ringraziamenti ricevuti 0
8 Anni 1 Mese fa #3
da Guido72
Risposta da Guido72 al topic LCD rallenta esecuzione programma ?
Aggiornamento.
Ho in effetti riscontrato la dipendenza del problema con l'utilizzo delle funzioni associate al display.
L'ho fatto semplicemente dicendo al pic di mettere RBx = 1 se RBy = 1 (dove entra il clock da contare) e l'scilloscopio riscontra una perfetta corrispondenza quando il display non è nel programma ed un rallentamento di tutto il processo quando il display è abilitato. Un rallentamento di circa 24ms......ovviamente inaccettabile.
Detto questo, la domanda è spontanea. Come fare ad implementare il display senza che questo rallenti il programma ?
Guido
Ho in effetti riscontrato la dipendenza del problema con l'utilizzo delle funzioni associate al display.
L'ho fatto semplicemente dicendo al pic di mettere RBx = 1 se RBy = 1 (dove entra il clock da contare) e l'scilloscopio riscontra una perfetta corrispondenza quando il display non è nel programma ed un rallentamento di tutto il processo quando il display è abilitato. Un rallentamento di circa 24ms......ovviamente inaccettabile.
Detto questo, la domanda è spontanea. Come fare ad implementare il display senza che questo rallenti il programma ?
Guido
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Guido72
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 45
- Ringraziamenti ricevuti 0
8 Anni 1 Mese fa - 8 Anni 1 Mese fa #4
da alfa75
Risposta da alfa75 al topic LCD rallenta esecuzione programma ?
Ciao Guido72
purtroppo con i micro è cosi bisogna fare in modo che tutto si incastri ,senza che i diversi processi da eseguire si diano noia.
Oltre a leggere in interrupt l'ingresso potresti fare come con i frequenzimetri cioè campionare il segnale in ingresso per un periodo definito (10ms ,100ms,1S...) a cadenze regolari in base alle tue esigenze.
Saluti,
Andrea.
purtroppo con i micro è cosi bisogna fare in modo che tutto si incastri ,senza che i diversi processi da eseguire si diano noia.
Oltre a leggere in interrupt l'ingresso potresti fare come con i frequenzimetri cioè campionare il segnale in ingresso per un periodo definito (10ms ,100ms,1S...) a cadenze regolari in base alle tue esigenze.
Saluti,
Andrea.
Ultima Modifica 8 Anni 1 Mese fa da alfa75.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- alfa75
- Platinum Member
Riduci
Di più
- Messaggi: 527
- Ringraziamenti ricevuti 86
8 Anni 1 Mese fa #5
da Guido72
Risposta da Guido72 al topic LCD rallenta esecuzione programma ?
Ciao Andrea,
ti ringrazio.
Non sò se è possibile fare come dici perchè, il frequenzimetro , credo, si aggiorna alla nuova frequenza e qui ci può stare. Nel mio caso devo contare il numero esatto di inpulsi in ingresso percui è una lettura "in diretta", al massimo è consentito aggiornare il display ad intervalli di 100-250ms....
La funzione è un pò come quella di un contapezzi.
Credo che con gli interrupts si possa fare anche se la sequenza di interrupts è elevata e questo potrebbe bloccare l'esecuzione del main.
Ora il problema è riuscire a far funzionare gli interrupts. Stò tentando ma non riesco
Bella l'Alfa 75.....altri tempi...
ti ringrazio.
Non sò se è possibile fare come dici perchè, il frequenzimetro , credo, si aggiorna alla nuova frequenza e qui ci può stare. Nel mio caso devo contare il numero esatto di inpulsi in ingresso percui è una lettura "in diretta", al massimo è consentito aggiornare il display ad intervalli di 100-250ms....
La funzione è un pò come quella di un contapezzi.
Credo che con gli interrupts si possa fare anche se la sequenza di interrupts è elevata e questo potrebbe bloccare l'esecuzione del main.
Ora il problema è riuscire a far funzionare gli interrupts. Stò tentando ma non riesco
Bella l'Alfa 75.....altri tempi...
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Guido72
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 45
- Ringraziamenti ricevuti 0
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.