Delay10KTCYx()

11 Anni 4 Mesi fa - 11 Anni 4 Mesi fa #1 da luca2680
Delay10KTCYx() è stato creato da luca2680
Salve,sto guardando la funzione di delays per saperne un po' di piu e ho capito questo:
Usando un quarzo INTERNO da 8 Mhz,la mia relazione sara' 1/8=0,125 poi prendo questo 0,125 e lo moltiplico per 4 Tclock,cioè 0,5...
Di conseguenza il mio Delay10KTCYx() ritarda di 5000 uS...giusto fino ad ora?
Comunque ho capito anche che piu di un sec e 20 non va oltre....ma se voglio ad esempio 7 sec,come faccio?

Correggetemi se sbaglio,ma non posso utilizzare il delay1oktc con la libreria "LCD_44780",giusto?perche usa il delay in ms o s giusto?

vi ringrazio
Ultima Modifica 11 Anni 4 Mesi fa da luca2680.

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

  • luca2680
  • Elite Member
  • Elite Member
Di più
11 Anni 4 Mesi fa #2 da StefA
Risposta da StefA al topic Delay10KTCYx()
non ho ben capito cosa intendi, la libreria di Mauro e la libreria microchip o altre sono diverse, tu puoi fare un ritardo come vuoi, ma dentro la libreria LCD_44780 di Mauro è inclusa la delay di Mauro e non vedo perché cambiare le cose visto che funziona (non è così complicato usare un'altra libreria al posto di quella di Mauro, ma perché stare a cambiare tutto e perdere tempo?).

Se hai un frequenza di 8MHz, il periodo, cioè il tempo di esecuzione di 1 ciclo di clock è pari a 1/8MHz...cioè 1/8000000 = 0.125 * 10^-6 = 0.125 microsecondi (us) [0.000000125 secondi]

poi prendo questo 0,125 e lo moltiplico per 4 Tclock,cioè 0,5

sono 0.125 us * 4 = 0.5 microsecondi (us)

Di conseguenza il mio Delay10KTCYx() ritarda di 5000 uS...giusto fino ad ora?

la funzione Delay10KTCYx() se ci metti 1..quindi..Delay10KTCYx(1) credo ritardi 10 cicli di clock..per cui avresti:
0.5 microsecondi * 10 = 5 microsecondi (us)

Comunque ho capito anche che piu di un sec e 20 non va oltre....ma se voglio ad esempio 7 sec,come faccio?

se metti la funzione dentro un ciclo o vari cicli annidati, arrivi a qualsiasi ritardo.

Mauro ha scritto la funzione delay_s(); e quella è la starda più semplice..ma se proprio non vuoi usare la sua libreria..
Per ritardi così alti si fa in altro modo, si usa il timer del pic e se hai bisogno di tempi maggiori potresti pensare ad un Real Time Clock Calendar..perché ritardi fatti con le varie librerie di solito sono bloccanti e stare bloccato per 7 secondi non ha nessun aspetto positivo.

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

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

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
11 Anni 4 Mesi fa #3 da luca2680
Risposta da luca2680 al topic Delay10KTCYx()
Ok perfetto ti ringrazio,ho risolto e funziona bene,perche con quella di mauro ho problemi...per farla funzionare ho:quarzo interno da 8 Mhz,devo settare il setquartz a 16(cioè il doppio) e lasciare il 20 Mhz di default della libreria di mauro,con il delays,faccio un conto e via...piu che altro in un programma li posso usare entrambi o vanno in "conflitto"?

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

  • luca2680
  • Elite Member
  • Elite Member
Di più
11 Anni 4 Mesi fa - 11 Anni 4 Mesi fa #4 da StefA
Risposta da StefA al topic Delay10KTCYx()
mi sembra abbiano tutti nomi diversi, quindi dovresti poterli usare in contemporanea.
Il problema con la libreria di Mauro però sarebbe da indagare e risolvere..prova a cambiare tempi e vedere se ogni volta il ritardo è la metà...se è così da qualche parte c'è un fattore 2 di mezzo.

Ste

EDIT: qui avevi detto che avevi risolto e ti funzionava con 8..come avevi risolto?

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Ultima Modifica 11 Anni 4 Mesi fa da StefA.

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

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
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