LCD rallenta esecuzione programma ?

7 Anni 5 Mesi fa - 7 Anni 5 Mesi 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
Ultima Modifica 7 Anni 5 Mesi fa da Guido72. Motivo: irrilevante

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Guido72
  • Senior Member
  • Senior Member
Di più
7 Anni 5 Mesi 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
  • Senior Member
  • Senior Member
Di più
7 Anni 5 Mesi 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

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Guido72
  • Senior Member
  • Senior Member
Di più
7 Anni 5 Mesi fa - 7 Anni 5 Mesi 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.
Ultima Modifica 7 Anni 5 Mesi fa da alfa75.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
7 Anni 5 Mesi 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. :sick:

Ora il problema è riuscire a far funzionare gli interrupts. Stò tentando ma non riesco :pinch:

Bella l'Alfa 75.....altri tempi... :)

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Guido72
  • Senior Member
  • Senior Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login