Page 1 of 1

$TIMEOUT (come si calcola?)

PostPosted: 06 Apr 2012, 11:48
by filosofo
Salve a tutti,
C'è qualcuno che mi potrebbe dare qualche informazione a proposito di $TIMEOUT ?

1) Quale è la relazione tra il valore assegnato a $TIMEOUT e il vero valore real-time assumendo 8MHz come clock?
L'help dice che cè un rapporto relativo tra il valore assegnato e il tempo reale che l'istruzione INPUT aspetta prima di andare avanti se
non riceve caratteri.
C'è un modo per calcolarlo? Sull' help non viene specificato....

2) E quindi, cosa significa ad esempio ($TIMEOUT=1000000) ?


Grazie e Buona Pasqua

Re: $TIMEOUT (come si calcola?)

PostPosted: 11 Apr 2012, 17:35
by deluca
filosofo wrote:Salve a tutti,
C'è qualcuno che mi potrebbe dare qualche informazione a proposito di $TIMEOUT ?

1) Quale è la relazione tra il valore assegnato a $TIMEOUT e il vero valore real-time assumendo 8MHz come clock?
L'help dice che cè un rapporto relativo tra il valore assegnato e il tempo reale che l'istruzione INPUT aspetta prima di andare avanti se
non riceve caratteri.
C'è un modo per calcolarlo? Sull' help non viene specificato....

2) E quindi, cosa significa ad esempio ($TIMEOUT=1000000) ?


Grazie e Buona Pasqua


Questo è quello che riporta l'help del Bascom-AVR.....

"The timeout is not in seconds or microseconds, it is a relative number.
Only the speed of the oscillator has effect on the duration. And the value of the number of course."


Come avevi già visto il $timeout è un valore relativo e purtroppo dovresti andare a tentativi visto che tutto dipende dalla
freq della CPU.
Impostando un $Timeout=1000000
nella routine di "INPUT" potresti, prima di INPUT settare un bit di una porta e subito dopo INPUT, resettarlo.
A questo punto potresti banalmente misurare con uno oscilloscopio o LA il tempo tra il set e il reset del bit.
Avendo questo valore potresti applicare una proporzione ed avere così una costante per quel dato chip e clock.

NB.In modo approssimato potremmo dire che un valore di 1000000 equivale ad un ciclo di attesa di 100mSec con un clock di 10Mhz

Ciao