Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

taratura clock

95 views
Skip to first unread message

diego

unread,
Mar 15, 2009, 6:37:50 PM3/15/09
to
Salve!

Pensavo alla creazione di un orologio sfruttando l'interrupt del timer1 di
un Pic 16F877 con quarzo a 20 Mhz.

Vorrei mettere un compensatore in serie ad un piedino del quarzo per fare
una regoalzione fine dell'esatta frequenza di clock, pensavo per fare cio'
di creare un main vuoto ed una routine di interrupt per owerflow del timer
1, considerando che il timer1 e a 16bit quindi 2alla 16 e' 65536 il timer
funzioanndo alla frequenza di 20mhz/4 ovvero a 5mhz dovrei avere un
interrupt ogni 13,1072 ms cioe' ad una frequenza di 76,2939453125 HZ ora che
ne pensate di misurare questa frequenza con un frequenzimetro con la sonda
su un piedino di uscita? per fare questo si puo' usare:

#define prova_freq pin_a1
#int_TIMER1
void TIMER1_isr()
{

output_toggle (prova_freq);

}

considerando che in assembler il compilatore produce per
output_toggle(prova_freq):

BSF 03.5
BCF 06.4
MOVLW 10
BCF 03.5
XORWF 06,F

insomma come si fa a regolare esattamente il clock del micro?


Stefano Martini

unread,
Mar 16, 2009, 3:46:31 AM3/16/09
to
diego ha scritto:

> Salve!
>
> Pensavo alla creazione di un orologio sfruttando l'interrupt del timer1 di
> un Pic 16F877 con quarzo a 20 Mhz.

Ciao!

Hai un motivo particolare per usare un qurzo da 20MHz?
Perchè altrimenti se usi un quarzo da 32,768KHz mi sa che risolvi i
problemi molto più facilmente! Del resto tale quarzo è molto facile da
trovare!

32768 / 4 = 8192 / 32 = 256 (!!!!)
Il 32 sarebbe l'impostazione del prescaler sul TMR.

Ciao!


--
Stefano Martini (Italy)
WEB: http://www.lemming.it

I am so scared, / I am so guilty, / I am so sad!!

crow...@gmail.com

unread,
Mar 16, 2009, 7:42:08 PM3/16/09
to
On 15 Mar, 23:37, "diego" <diego...@email.it> wrote:
> Salve!
>
> Pensavo alla creazione di un orologio sfruttando l'interrupt del timer1 di
> un Pic 16F877 con quarzo a 20 Mhz.
>
> Vorrei mettere un compensatore in serie ad un piedino del quarzo per fare
> una regoalzione fine dell'esatta frequenza diclock, pensavo per fare cio'

> di creare un main vuoto ed una routine di interrupt per owerflow del timer
> 1, considerando che il timer1 e a 16bit quindi 2alla 16 e' 65536 il timer
> funzioanndo alla frequenza di 20mhz/4 ovvero a 5mhz dovrei avere un
> interrupt ogni 13,1072 ms cioe' ad una frequenza di 76,2939453125 HZ ora che
> ne pensate di misurare questa frequenza con un frequenzimetro con la sonda
> su un piedino di uscita? per fare questo si puo' usare:
>
> #define prova_freq pin_a1
> #int_TIMER1
> void TIMER1_isr()
> {
>
> output_toggle (prova_freq);
>
> }
>
> considerando che in assembler il compilatore produce per
> output_toggle(prova_freq):
>
>   BSF    03.5
>   BCF    06.4
>   MOVLW  10
>   BCF    03.5
>   XORWF  06,F
>
> insomma come si fa a regolare esattamente ilclockdel micro?

I quarzi con compensatore hanno il fascino della
regolazione del pendolo dei vecchi orologi, ma non
sono molto pratici.
Via software è molto più semplice.
Per esempio, se il clock è di 20 MHz, non devi fare
avanzare il contatore dei secondi ogni 20.000.000
cicli costanti, ma di un valore che stabilirai in fase
di esecuzione. In questo modo puoi regolare l'orologio
con una finezza di 0.05 ppm, molto migliore di
qualunque compensatore e, inoltre, puoi tararlo a colpo
sicuro osservando quanti secondi sbaglia in quanti
giorni.

Due di Picche

unread,
Mar 17, 2009, 4:05:46 AM3/17/09
to

Pestando alacremente sulla tastiera crow...@gmail.com ebbe
l'ardire di profferire:

> Via software =E8 molto pi=F9 semplice.
> Per esempio, se il clock =E8 di 20 MHz, non devi fare


> avanzare il contatore dei secondi ogni 20.000.000
> cicli costanti, ma di un valore che stabilirai in fase
> di esecuzione. In questo modo puoi regolare l'orologio
> con una finezza di 0.05 ppm, molto migliore di
> qualunque compensatore e, inoltre, puoi tararlo a colpo
> sicuro osservando quanti secondi sbaglia in quanti
> giorni.

Perdonami ma ci sono alcune inesattezze...
Innanzi tutto il ciclo di istruzione di un PIC vale f/4 quindi
viaggia in pratica a 200nS per istruzione. La finezza dei ppm scende
quindi a 0,2ppm.

Ma anche in questo caso dovresti teorizzare che il PIC faccia solo ed
eslusivamente quello (cioč contare i secondi) senza memorizzarli da
nessuna parte nč mostrarli su alcun piedino di uscita (altrimenti
altri cicli di istruzione e abbassamento ulteriore della
regolazione)...

--
Diagnostics are the programs that run when nothing else will.
News 2002 [v 2.3] / StopDialer / PopDuster - http://www.socket2000.com
Akapulce portal: http://www.akapulce.net

F. Bertolazzi

unread,
Mar 17, 2009, 5:35:40 AM3/17/09
to
crow...@gmail.com:

> Per esempio, se il clock è di 20 MHz, non devi fare
> avanzare il contatore dei secondi ogni 20.000.000
> cicli costanti, ma di un valore che stabilirai in fase
> di esecuzione.

Forse faresti meglio a precisare che si tratta di aggiungere o togliere
un'unità al registro di periodo del timer ogni N timeout, altrimenti
qualche ritardato potrebbe pensare che tu proponga di fare un RTC con dei
loop di... ritardo.

Due di Picche

unread,
Mar 17, 2009, 5:45:48 AM3/17/09
to

Pestando alacremente sulla tastiera "F. Bertolazzi"
<TOGL...@MAIUSCOLEtdd.it> ebbe l'ardire di profferire:

> Forse faresti meglio a precisare che si tratta di aggiungere o togliere
> un'unità al registro di periodo del timer ogni N timeout, altrimenti
> qualche ritardato potrebbe pensare che tu proponga di fare un RTC con dei
> loop di... ritardo.

L'unico ritardato in questo thread, esimio frescone, è il solito
bertolazzi...
Se non conosci i PIC statti zitto. Continua a farti pippe con gli
atmel.


--
In God we trust; all else we walk through.

F. Bertolazzi

unread,
Mar 17, 2009, 6:12:16 AM3/17/09
to
F. Bertolazzi:

> registro di periodo

Quello che nel PIC16F877 si chiama PR2.

IW0HKG Massimo

unread,
Mar 17, 2009, 9:18:07 AM3/17/09
to

> Via software è molto più semplice.
> Per esempio, se il clock è di 20 MHz, non devi fare
> avanzare il contatore dei secondi ogni 20.000.000
> cicli costanti, ma di un valore che stabilirai in fase
> di esecuzione. In questo modo puoi regolare l'orologio

Pero' pensare di farlo su una produzione di, per esempio, 1000
esemplari, mi genera un principio di esaurimento nervoso. :)

Per le derive termiche invece che soluzioni avete?


Saluti

Massimo IW0HKG


F. Bertolazzi

unread,
Mar 17, 2009, 10:39:59 AM3/17/09
to
IW0HKG Massimo:

> Pero' pensare di farlo su una produzione di, per esempio, 1000
> esemplari, mi genera un principio di esaurimento nervoso. :)

Se il processore ha una EEPROM basta disegnare un altro circuitino che, a
fronte di una base tempi precisa, dica ad ogni orologio la correzione
necessaria. Anzi, potrebbe essere l'orologio stesso a calibrarsi: se un
pin, normalmente pulluppato, viene tirato giù esattamente per 24 ore, basta
fare quattro conti e scrivere il risultato in EEPROM.



> Per le derive termiche invece che soluzioni avete?

Eh, bella domanda. Se riesci a caratterizzare la deriva ed accoppiare
termicamente il quarzo ad un sensore di temperatura (o, meglio ancora, se
hai un controller tipo ATtiny 2/4/84 o 2/4/85 col suo termometrino dentro)
forse, chissà...

diego

unread,
Mar 17, 2009, 1:00:40 PM3/17/09
to
Ciao a tutti!

Sono mancato per due girni da casa e quando sono tornato, mi sono detto ora
leggo cosa hanno scritto i miei amici :-) a proposito della mia richiesta,
ho notato che come al solito ci sono i litigi fra Due di Picche e
Bertolazzi, mi domando ma non c'e' modo alcuno di non farvi litigare? poi ci
sono le risposte che mi sa nno tanto di accademia............. e la risposta
a quello che avevo chiesto? qualcuno ha tentato dicendo si usare un quarzo
che dia tempi interi, a questo ci avevo pensato, pero' stavo cercando fra i
valori standard un quarzo con velocita' maggiore.

Al preambolo del mio messaggio alla fine chiedevo se con )toggle piedino di
uscita) su interrupt del timer potevo monitorare monitorare la frequenza del
timer.


Stefano Martini

unread,
Mar 17, 2009, 2:20:19 PM3/17/09
to
diego ha scritto:

> sono le risposte che mi sa nno tanto di accademia............. e la risposta
> a quello che avevo chiesto? qualcuno ha tentato dicendo si usare un quarzo
> che dia tempi interi, a questo ci avevo pensato, pero' stavo cercando fra i
> valori standard un quarzo con velocita' maggiore.

Ciao!
Allora se desideri fare una cosa precisa ti direi di sfruttare gli
interrupt sul timer, però, putroppo non ti so aiutare con il C, non lo
uso, se ti interessa in ASM posso magari vedere di metterti giù
qualcosa. Fammi sapere se ti interessa.

> Al preambolo del mio messaggio alla fine chiedevo se con )toggle piedino di
> uscita) su interrupt del timer potevo monitorare monitorare la frequenza del
> timer.

Se ho capito bene cosa vuoi fare, la risposta è si, e non è molto
difficile, sepre però ti parlo di routine ASM.

Ciao!

Stefano

ahrfukkio

unread,
Mar 17, 2009, 3:05:19 PM3/17/09
to
> Pensavo alla creazione di un orologio sfruttando l'interrupt del timer1 di
> un Pic 16F877 con quarzo a 20 Mhz.


puoi utilizzare il modulo CCP; lo utilizzi in modalità "compare" creando
un interrupt ogni (ad esempio) 100ms; a questo punto ti basta incrementare
una variabile ad ogni interrupt e, quando arrivi a 10, incrementi di un
secondo e azzeri la variabile.
Io ho fatto un piccolo timer con questa filosofia.. è altresì vero che
tanto conta 2 minuti quindi anche se non è precisissimo importa il giusto!

--
Davide C.
www.ingegnerando.it

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ab...@newsland.it


Due di Picche

unread,
Mar 17, 2009, 3:11:41 PM3/17/09
to

Pestando alacremente sulla tastiera "diego" <dieg...@email.it> ebbe
l'ardire di profferire:


> insomma come si fa a regolare esattamente il clock del micro?

Se hai un frequenzimetro per misurare l'uscita perchè non misurare
direttamente sul quarzo su OSC2? Se hai paura di caricare lo stadio
allora l'idea dell'interrupt è buona però non arriverei a frequenze
così basse (anche perchè è difficile trovare frequenzimetri che
leggano molti decmali sugli hertz).

--
Earth is 98% full...please delete anyone you can.

diego

unread,
Mar 17, 2009, 3:29:24 PM3/17/09
to

"Stefano Martini" ha scritto nel messaggio:

> Allora se desideri fare una cosa precisa ti direi di sfruttare gli
> interrupt sul timer, però, putroppo non ti so aiutare con il C, non lo
> uso, se ti interessa in ASM posso magari vedere di metterti giù
> qualcosa. Fammi sapere se ti interessa.

E' quello che vorrei fare cioe' sfruttare gli interrupt dei timer, la parte
di codice che ho postato si riferisce all' interrupt del TIMER1 di un
PIC16F877A, il problema vero sta nel monitorare l'interrupt dall' esterno,
mi spiego meglio, con i settaggi che ho, cioe' quarzo da 20Mhz, prescaler
1:1 uso del timer1, si ha un interrupt ogni 13,1072 ms cioe' ad una
frequenza di 76,2939453125 HZ, il mio dubbio era se nella routine di
interrupt metto (toggle piedino dle pic), succedera' che ad ogni interrupt
lo stato del pin del pic variera' da 0 ad 1, quindi in teoria se metto un
frequenzimetro su tale piedino deovrei leggere la frequenza dell' interrupt?
siccome non sono bravo in C per non parlare dell' assembler, non so
l'istruzione toggle quando tempo impieghi e quindi non so se la misurazione
sia veritiera o quando ritardo aggiungera' , avevo postato anche il codice
assembler dato da toggle.

Pensavo anche al modo di leggere la frequenza del quarzo, ma non so cosa
succede se metto la sonda del frequenzimetro direttamente sui piedini dle
quarzo.


diego

unread,
Mar 17, 2009, 3:57:32 PM3/17/09
to

"Due di Picche" ha scritto nel messaggio:


>
>> insomma come si fa a regolare esattamente il clock del micro?
>
> Se hai un frequenzimetro per misurare l'uscita perchè non misurare
> direttamente sul quarzo su OSC2? Se hai paura di caricare lo stadio
> allora l'idea dell'interrupt è buona però non arriverei a frequenze
> così basse (anche perchè è difficile trovare frequenzimetri che
> leggano molti decmali sugli hertz).
>

Questa la devo provare, pero' ho paura che la modesta sonda che ho possa
bloccare l'oscillatore, secondo te l'idea che ho avuto, cioe' mettere toggle
nell' interrupt e' valida? oppure bisognerebbe calcolare questa istruzione
quanti cicli richiede ed aggiungere tale valore a quello dell'interrupt?


diego

unread,
Mar 17, 2009, 4:03:33 PM3/17/09
to

"ahrfukkio" ha scritto nel messaggio:

> puoi utilizzare il modulo CCP; lo utilizzi in modalità "compare" creando
> un interrupt ogni (ad esempio) 100ms; a questo punto ti basta incrementare
> una variabile ad ogni interrupt e, quando arrivi a 10, incrementi di un
> secondo e azzeri la variabile.

Vorrai dire creare un interrupt con i TIMER?

> Io ho fatto un piccolo timer con questa filosofia.. è altresì vero che
> tanto conta 2 minuti quindi anche se non è precisissimo importa il giusto!

A dire il vero con gli interrupt sul timer0 che e' ad 8 bit e con il timer1
a 16 bit ho fatto un timer che in 24 ore perde circa 15 secondi, il problema
che mi ponevo era il sistema per tarare le piccole tolleranze del clock che
su tempi lunghi danno errori rilevanti.


Due di Picche

unread,
Mar 17, 2009, 5:35:41 PM3/17/09
to

Pestando alacremente sulla tastiera "diego" <dieg...@email.it> ebbe
l'ardire di profferire:

> Questa la devo provare, pero' ho paura che la modesta sonda che ho possa
> bloccare l'oscillatore, secondo te l'idea che ho avuto, cioe' mettere toggle
> nell' interrupt e' valida? oppure bisognerebbe calcolare questa istruzione
> quanti cicli richiede ed aggiungere tale valore a quello dell'interrupt?

L'importante č che le istruzioni contenute nell'interrupt durino meno
del periodo selezionato per l'interrupt stesso. Non devi sommare
nulla se riesci a stare in questa finestra temporale.

--
IBM: Ici Beaucoup Merde

crow...@gmail.com

unread,
Mar 17, 2009, 6:14:06 PM3/17/09
to
On 17 Mar, 15:39, "F. Bertolazzi" <TOGLIe...@MAIUSCOLEtdd.it> wrote:
> Anzi, potrebbe essere l'orologio stesso a calibrarsi

Questo era esattamente dove volevo arrivare.
L'orologio potrebbe imparare da solo quanto accelerare o
rallentare in base alle correzioni che verrebbero fatte
manualmente nel corso del tempo. E non mi sembra
nemmeno difficile da realizzare.

>
> > Per le derive termiche invece che soluzioni avete?
>
> Eh, bella domanda. Se riesci a caratterizzare la deriva ed accoppiare
> termicamente il quarzo ad un sensore di temperatura (o, meglio ancora, se
> hai un controller tipo ATtiny 2/4/84 o 2/4/85 col suo termometrino dentro)
> forse, chissà...

Magari ci fossero solo le derive termiche! Comunque eliminando
il compensatore si toglie la principale fonte di instabilità.
I quarzi poi non sono tutti uguali, bisogna usarne uno buono.
Infine l'alimentazione deve essere bella stabile e per i condensatori
usare condensatori ceramici NP0 o, meglio ancora, a mica
argentata.


Due di Picche

unread,
Mar 17, 2009, 8:06:36 PM3/17/09
to

Pestando alacremente sulla tastiera "F. Bertolazzi"
<TOGL...@MAIUSCOLEtdd.it> ebbe l'ardire di profferire:

> F. Bertolazzi:
>
> > registro di periodo
>
> Quello che nel PIC16F877 si chiama PR2.

Eh si... TMR2. Peccato che "...The input clock (FOSC/4) has a
prescale option of 1:1, 1:4 or 1:16..."
cioč 200nS di risoluzione non 50nS... Come dicevo appunto.


--
All new: The software is not compatible with previous versions.

diego

unread,
Mar 17, 2009, 8:42:41 PM3/17/09
to

"Due di Picche" ha scritto nel messaggio:

>


> Eh si... TMR2. Peccato che "...The input clock (FOSC/4) has a
> prescale option of 1:1, 1:4 or 1:16..."
> cioč 200nS di risoluzione non 50nS... Come dicevo appunto.
>

Ho trovato la soluzione quasi perfetta "ora sto facendo girare l'orologio
per vedere di quanto si scosta" vi dicono niente i registri TMR1H e TMR1L ?
giocando con questi due registri si puo' fare in modo che anche un quarzo da
20Mhz possa dare degli intervalli di interrupt interi "quasi". caricando in
questi registri i valori 00X7F in TMR1H e 00X81 in TMR1L.

Con questi valori impostando il prescaler a 2:1 ho un interrupt ogni 13,158
ms quindi dopo 76 cicli ho 1000,008ms.

Per i calcoli ho usato un calcolatore trovato in rete si chiama PIC timer
calculator versione 0.9.2


Stefano Martini

unread,
Mar 18, 2009, 3:19:31 AM3/18/09
to
diego ha scritto:

> siccome non sono bravo in C per non parlare dell' assembler, non so
> l'istruzione toggle quando tempo impieghi e quindi non so se la misurazione
> sia veritiera o quando ritardo aggiungera' , avevo postato anche il codice

Beh, questo è facilmente calcolabile in ASM.
Considerando il toggle fatto così:
MOVLw 1
XORWF PORTB, f
entrambe le istruzioni sono da 1 ciclo, quindi con un quarzo da 20MHz
corispondono a 20000000 / 4 = 5000000 * 2 = 10000000 = 0,0000001 secondi.
Ovviamente questo è un esempio, dipende da come strutturi il tuo firmw.
Generalmente preferisco utilizzare questi sistemi per effettuare un
toggle di una variabile.

Ciao!

Roberto P.

unread,
Mar 18, 2009, 4:31:04 AM3/18/09
to

"diego" <dieg...@email.it> ha scritto nel messaggio
news:49bd833b$0$710$5fc...@news.tiscali.it...

Vuoi correggere un errore di precisione del quarzo (hanno anche loro una
certa tolleranza), oppure non riesci ad implementare un orologio efficiente
nel tuo software ?

Nel primo caso, c'è poco da fare...in base alla precisione che vuoi ottenere
devi utilizzare cristalli con xppm di errore.
Considera anche che l'utlilizzo di compensatori per 'affinare' il clock ha
in primo luogo una controindicanzione in quanto per tempi lunghi (dopo
qualche anno) le capacità variabili 'variano' (ossidazione,vibrazioni,...),
ed in secondo luogo c'è la necessità di tarare tutte le schede in
produzione.
La taratura, per essere precisa, deve essere fatta quando la frequenza è
ancora 'alta' (prima del prescaler), altrimenti l'errore aumenta.

Se invece il tuo scopo è di realizzare un rtc preciso via sw, affidandoti
all'hw che hai, ti si presentano 2 strade: utilizzare un quarzo che abbia
una frequenza che sia una potenza di 2 (classico il 32768kHz) e (micro
permettendo) collegarlo all'ingresso oscillatore del timer1 in modo da avere
un rtc separato dal clock di sistema.
L'altra alternativa è di non ostinarsi a cercare un fattore di divisione ed
un prescaler precisi, quando ci sarà sempre un errore.
Invece di contare il tempo, è molto più sensato contare direttamente i cicli
di clock (visto che hgli interrupt sono scatenati dopo un conteggio di cicli
di click, appunto).
Ne abbiamo parlato abbastanza a lungo qui
http://www.ccsinfo.com/forum/viewtopic.php?t=26177&postdays=0&postorder=asc&highlight=timer+precision&start=0
Il codice riportato funziona perfettamente.

F. Bertolazzi

unread,
Mar 18, 2009, 4:49:31 AM3/18/09
to
crow...@gmail.com:

> L'orologio potrebbe imparare da solo quanto accelerare o
> rallentare in base alle correzioni che verrebbero fatte
> manualmente nel corso del tempo. E non mi sembra
> nemmeno difficile da realizzare.

L'idea è ottima, a patto che non ci siano derive termiche.

Quasi quasi lo implemento sul mio timer per la pasta, tanto lo devo
smontare comunque per mettergli un quarzo: con il risuonatore ceramico (la
funzione orologio l'ho implementata dopo aver fatto l'hardware) mi perde un
minuto al giorno.

> Magari ci fossero solo le derive termiche! Comunque eliminando
> il compensatore si toglie la principale fonte di instabilità.
> I quarzi poi non sono tutti uguali, bisogna usarne uno buono.
> Infine l'alimentazione deve essere bella stabile e per i condensatori
> usare condensatori ceramici NP0 o, meglio ancora, a mica
> argentata.

Visto che è alimentato a 220V sono però indeciso se non semplificare il
tutto ed agganciarmi alla frequenza di rete.

Tra l'altro, essendo montato sulla cappa di aspirazione, è possibile che
non sia sempre a temperatura costante.

Tu che ne dici?

SB

unread,
Mar 18, 2009, 5:33:53 AM3/18/09
to
Il giorno Wed, 18 Mar 2009 09:49:31 +0100, "F. Bertolazzi"
<TOGL...@MAIUSCOLEtdd.it> ha scritto:

>
>Visto che è alimentato a 220V sono però indeciso se non semplificare il
>tutto ed agganciarmi alla frequenza di rete.
>
>Tra l'altro, essendo montato sulla cappa di aspirazione, è possibile che
>non sia sempre a temperatura costante.

La frequenza di rete è stabilissima, però è abbastanza difficile da
sincronizzare bene.
I disturbi e gli impulsi spuri presenti sempre sulla linea fanno si che gli
orologi sincronizzati sulla rete tendano sempre ad andare avanti.


Io ormai ho standardizzato il 41T81 con un quarzo a 32Khz, costa e consuma poco
e ha anche funzioni interessanti, quali la memoria del power off.


--
ciao
Stefano

F. Bertolazzi

unread,
Mar 18, 2009, 6:16:44 AM3/18/09
to
SB:


> La frequenza di rete è stabilissima, però è abbastanza difficile da
> sincronizzare bene.
> I disturbi e gli impulsi spuri presenti sempre sulla linea fanno si che gli
> orologi sincronizzati sulla rete tendano sempre ad andare avanti.

Beh, meglio avanti che indietro...

Comunque, trattandosi di un microprocessore e non di uno "stupido
contatore", è assai facile farlo agganciare solo allo zero cross: basta
ignorare tutti gli impulsi che arrivano prima di 9,99 ms dal precedente.

> Io ormai ho standardizzato il 41T81 con un quarzo a 32Khz, costa e consuma poco
> e ha anche funzioni interessanti, quali la memoria del power off.

Lo stampato è già fatto, il timer è già montato. Anche per questo, a
pensarci meglio, non credo mi aggancerò alla rete, in quanto dovrei portare
un altro filo, preso prima dell'alimentatorino switching, per il sense
dello zerocross.

Vado di quarzo e, forse, implementerò l'algoritmo suggerito da Crowned.

F. Bertolazzi

unread,
Mar 18, 2009, 6:25:31 AM3/18/09
to
F. Bertolazzi:

> Vado di quarzo e, forse, implementerò l'algoritmo suggerito da Crowned.

Questo costa due lire e lo posso mettere pari pari al posto del risuonatore
http://www.vishay.com/docs/35014/xt49s.pdf
I condensatori li piazzo lato saldature.

F. Bertolazzi

unread,
Mar 18, 2009, 6:35:18 AM3/18/09
to
crow...@gmail.com:

> per i condensatori usare condensatori ceramici NP0 o, meglio ancora, a
> mica argentata.

Questi ultimi Farnell li fa a 1,11 euro l'uno, il doppio del quarzo.
Questi costano un quinto
http://www.farnell.com/datasheets/58252.pdf
Vanno bene uguaglio, vero?

BQ

unread,
Mar 18, 2009, 6:39:55 AM3/18/09
to
SB ha scritto:

>
> La frequenza di rete è stabilissima,

stabilissima può darsi, però che sia esattamente 50Hz è tutto da vedere,
almeno per quel che ne so.
Ricordo ai tempi della scuola la visita ad una centrale elettrica: c'era
un bell'indicatore analogico che indicava la frequenza e segnava una
cosa tipo 49,98Hz.

La cosa ha anche un senso: in fondo a monte di tutto c'è un albero che
gira ad una determinata velocità angolare, che deve rimanere il più
possibile vicina al setpoint, ma le oscillazioni ci possono essere.
Ciao

SB

unread,
Mar 18, 2009, 7:00:21 AM3/18/09
to
Il giorno Wed, 18 Mar 2009 10:39:55 GMT, BQ <spammala...@gmail.com> ha
scritto:


>La cosa ha anche un senso: in fondo a monte di tutto c'è un albero che
>gira ad una determinata velocità angolare, che deve rimanere il più
>possibile vicina al setpoint, ma le oscillazioni ci possono essere.

Mi sembra di ricordare che nel lungo periodo le varizioni fossero compensate, ne
abbiamo parlato anche qui:

http://tinyurl.com/c9czqd

http://tinyurl.com/d9yq72


--
ciao
Stefano

BQ

unread,
Mar 18, 2009, 7:30:56 AM3/18/09
to
SB ha scritto:

molto interessante! grazie!

F. Bertolazzi

unread,
Mar 18, 2009, 9:02:30 AM3/18/09
to
BQ:

> La cosa ha anche un senso: in fondo a monte di tutto c'è un albero che
> gira ad una determinata velocità angolare,

Ma, soprattutto, a valle ci sono altre decine di centrali tutte connesse
alla stessa griglia di distribuzione.

lucky

unread,
Mar 18, 2009, 10:04:08 AM3/18/09
to

La frequenza è molto precisa, ma solo per il lungo periodo.
Sul breve è piuttosto ballerina.

Vedi qui:

http://www.ucte.org/

Ciao.

lucky

diego

unread,
Mar 18, 2009, 10:23:01 AM3/18/09
to

"Roberto P." ha scritto nel messaggio:

> Ne abbiamo parlato abbastanza a lungo qui
> http://www.ccsinfo.com/forum/viewtopic.php?t=26177&postdays=0&postorder=asc&highlight=timer+precision&start=0
> Il codice riportato funziona perfettamente.

Ho letto quella discussione, ho usato quel codice che in particolare fa in
modo che il decremento avvenga una volta dopo 76 cicli e poi dopo 77 cicli
facendo una media una volta meno di 1 secondo la secondo qualcosa in piu'
facendo la media si quasi 1 secondo, ma l'errore dopo 24 ore si nota.

Scusami una cosa che non capisco tu dici che e' piu' sensato contare i cicli
di clock, come se fossero due cose indipendenti? per me sono legati quindi e
come dire ho una frequenza di 10Hz oppure un perido di 10ms.


Roberto P.

unread,
Mar 18, 2009, 11:13:10 AM3/18/09
to

"diego" <dieg...@email.it> ha scritto nel messaggio
news:49c103c3$0$712$5fc...@news.tiscali.it...

>
> "Roberto P." ha scritto nel messaggio:
>
>> Ne abbiamo parlato abbastanza a lungo qui
>> http://www.ccsinfo.com/forum/viewtopic.php?t=26177&postdays=0&postorder=asc&highlight=timer+precision&start=0
>> Il codice riportato funziona perfettamente.
>
> Ho letto quella discussione, ho usato quel codice che in particolare fa in
> modo che il decremento avvenga una volta dopo 76 cicli e poi dopo 77 cicli
> facendo una media una volta meno di 1 secondo la secondo qualcosa in piu'
> facendo la media si quasi 1 secondo, ma l'errore dopo 24 ore si nota.

Hai letto anche l'ultima nota di correzione del codice nella seconda pagina
del thread ?

> Scusami una cosa che non capisco tu dici che e' piu' sensato contare i
> cicli di clock, come se fossero due cose indipendenti? per me sono legati
> quindi e come dire ho una frequenza di 10Hz oppure un perido di 10ms.

Una cosa innanzitutto, stai utilizando un quarzo da 20MHz su un 16f877A o su
un 16f877 ?
Nel secondo caso, per andare a 20MHz ti devi assicurare di avere un
16f877-20 altrimenti ti funzionerebbe un pò x caso (overclock un pò
azzardato, specialmente se vuoi misurare tempi).

Tornando alla tua domanda...
Il discorso è che un interrupt è generato ogni numero ben preciso di clock,
che imposti e che non cambiano mai.

Se invece vuoi generare un interrupt ogni 10ms, come ti sei accorto, entrano
in gioco delle cifre decimali (dovute alla frequenza del quarzo che non è
potenza di 2) che fanno si che si generi un piccolo errore.
Se trascuri l'errore e consideri come 10ms esatti la durata di tale
intervallo, e sommi il conteggio x avere i dsec e quindi i secondi/ore, non
farai altro che sommare anche gli errori, arrivando dopo tempi lunghi ad
avere un errore non indifferente.

Il programma che ti ho indicato (e che io stesso ho avuto modo di
utlizzare), conta effettivamente i cicli di clock annullando questa somma di
errori.

Se con questo metodo ed in sole 24ore arrivi avere un errore non
trascurabile, verifica la tua parte di circuito oscillatore.
Tieni presente che con un quarzo da 20MHz dovresti utilizzare capacità nel
range 15..33pF.
Se vuoi la stabilità dell'oscillatore è bene optare x i valori di capacità
maggiori, ovvero 33pF.

Siccome utilizzi un 16f877, come ti ho precedentemente suggerito, hai
considerato la posssibilità di collegare un quarzo da 32kHz, sui pin T1OSI e
T1OSO ?
Questo ti svincolerebbe dal clock principale, e partendo da una frequenza
più bassa, ti consentirebbe una precisione superiore.

BQ

unread,
Mar 18, 2009, 11:14:40 AM3/18/09
to
lucky ha scritto:
>
> La frequenza č molto precisa, ma solo per il lungo periodo.
> Sul breve č piuttosto ballerina.

>
> Vedi qui:
>
> http://www.ucte.org/
>
> Ciao.
>
> lucky

bello il grafico in tempo reale!
I fumi dell'alcool si sono dissipati un attimo e mi č venuto in mente
che durante il corso di controlli automatici facemmo una gita a Milano
in visita a quella che oggi si chiama Terna: la regolazione della
potenza delle centrali dipende ovviamente dal carico e ha come setpoint
appunto i 50Hz; si tratta di ottimizzare un sistema dinamico non lineare
e dal punto di vista teorico era un problema per niente banale [leggi:
non ci avevo capito una mazza].

Ricordo molto meglio il rutto soffocato che era scappato in un momento
di silenzio ad un mio amico. Una fatica per non scoppiare a ridere,
eravamo lě in quindici in tutto... Che figure di merda, LOL

F. Bertolazzi

unread,
Mar 18, 2009, 11:35:12 AM3/18/09
to
lucky:

> La frequenza è molto precisa, ma solo per il lungo periodo.
> Sul breve è piuttosto ballerina.

Beh, certo, il carico varia parecchio, nelle 24H, ma non così tanto da un
giorno all'altro.

F. Bertolazzi

unread,
Mar 18, 2009, 11:49:30 AM3/18/09
to
Roberto P.:


> Se invece vuoi generare un interrupt ogni 10ms, come ti sei accorto, entrano
> in gioco delle cifre decimali (dovute alla frequenza del quarzo che non è
> potenza di 2)

Glielo ho già spiegato giorni fa (vedi "calcolare interrupt del timer"), ma
sembra più interessato ad insegnarci la buona creanza che a cercar di
capire quanto gli viene suggerito.

> Il programma che ti ho indicato (e che io stesso ho avuto modo di
> utlizzare), conta effettivamente i cicli di clock annullando questa somma di
> errori.

Sì, ma usa un timer senza prescaler per poi fare operazioni a 16 bit.
Mi sembra un'inutile spreco di risorse con un nome pomposo e inappropriato
("zero-drift" ?). Anzi, ti rende ancor più difficile fare i conti per
eventuali correzioni del drift del quarzo.

diego

unread,
Mar 18, 2009, 12:22:07 PM3/18/09
to

"Roberto P." ha scritto nel messaggio:
>>
>>> Ne abbiamo parlato abbastanza a lungo qui
>>> http://www.ccsinfo.com/forum/viewtopic.php?t=26177&postdays=0&postorder=asc&highlight=timer+precision&start=0
>>> Il codice riportato funziona perfettamente.
>>
>> Ho letto quella discussione, ho usato quel codice che in particolare fa
>> in modo che il decremento avvenga una volta dopo 76 cicli e poi dopo 77
>> cicli facendo una media una volta meno di 1 secondo la secondo qualcosa
>> in piu' facendo la media si quasi 1 secondo, ma l'errore dopo 24 ore si
>> nota.
>
> Hai letto anche l'ultima nota di correzione del codice nella seconda
> pagina del thread ?

Ti riferisci a questo? In this way the increase of the seconds occurs every
76 cycles equal to 0996s , first cycles ranged from 76 to 77

se e' cosi' e' come avevo capito cioe' anche in questo modo si introducono
errori rilevanti nel tempo


> Una cosa innanzitutto, stai utilizando un quarzo da 20MHz su un 16f877A o
> su un 16f877 ?
> Nel secondo caso, per andare a 20MHz ti devi assicurare di avere un
> 16f877-20 altrimenti ti funzionerebbe un pò x caso (overclock un pò
> azzardato, specialmente se vuoi misurare tempi).

16F877A

> Tornando alla tua domanda...
> Il discorso è che un interrupt è generato ogni numero ben preciso di
> clock, che imposti e che non cambiano mai.

Hai analizzato quel codice? l'interrupt arriva sempre dopo 13,1072 ms poi
viene decrementato Ticker di 65536 che corrisponde a 2 elevato alla 16
perche' il timer e' a 16bit cioe' viene decrementato ogni ciclo (ogni ciclo
comunque e' 13,1072ms) dopo 76 cicli si verifica che la variabile Ticher e'
minore di 65536 esattamente sara' 19264 sara' assegnato a Ticker
19264+5000000 quindi si ricomincia e la varibile seocnds questa volta verra'
aumentata di una unita' dopo 77 cicli.

ora 76 cicli sono 996,1472ms invece 77 cicli sono 1009,2544ms ora spiegami
dove sta la differenza nell' uso dei cicli al posto del tempo (sono o non
sono due grandezze legate matematicamente?) secondo me il discorso di quel
codice e' valido per la portabilita'.

Al momento ti dico come ho risolto:
ho scelto un fattore di prescaler 1:8 ho scelto per TMR1H 00X0B e per TMR1L
00XDC cosi' ho un interrupt ogni 100ms tondi cioe' una frequenza di 10Hz
nell'istruzione dell' interrupt carico appunto:

#int_TIMER1
void TIMER1_isr()
{
set_timer1(0x0BDC);
Ticker -= 1;
if ( Ticker == 0 ) {
Ticker = 10;
seconds++;
}

Credo che cosi' si raggiunga una buona precisione legata alla tolleranza del
quarzo con molta semplicita', che ne pensi?


diego

unread,
Mar 18, 2009, 12:28:49 PM3/18/09
to

"F. Bertolazzi" ha scritto nel messaggio:

>> Se invece vuoi generare un interrupt ogni 10ms, come ti sei accorto,
>> entrano
>> in gioco delle cifre decimali (dovute alla frequenza del quarzo che non è
>> potenza di 2)
>
> Glielo ho già spiegato giorni fa (vedi "calcolare interrupt del timer"),
> ma
> sembra più interessato ad insegnarci la buona creanza che a cercar di
> capire quanto gli viene suggerito.

Caro Bertolazzi io cerco solo di imparare quello che non so e sono felice di
ricevere aiuto da parte tua, non sono nessuno e non voglio insegnare ne la
buona creanza ne altro, facevo notare solo che sembra che tu e Due di Picche
facciate la guerra con cose che non servono al titolo iniziale del
messaggio.

Scusami se ti richiedo potresti rispegarmi sempre se vuoi in cosa consisteva
il tuo suggerimento?

Roberto P.

unread,
Mar 18, 2009, 12:54:57 PM3/18/09
to

"diego" <dieg...@email.it> ha scritto nel messaggio
news:49c11fac$0$6828$5fc...@news.tiscali.it...

>
> "Roberto P." ha scritto nel messaggio:
>>>
[...]

>
> ora 76 cicli sono 996,1472ms invece 77 cicli sono 1009,2544ms ora spiegami
> dove sta la differenza nell' uso dei cicli al posto del tempo (sono o non
> sono due grandezze legate matematicamente?) secondo me il discorso di quel
> codice e' valido per la portabilita'.

Se consideri il tempo, ad ogni interrupt andrai ad incrementare il tuo
contatore (come nell'esempio che riporti sotto).
Se l'interrupt non è generato ogni 100ms esatti, ti porti indietro un
errore.

Se invece dici che i 100ms equivalgono a n cicli di clock, non incrementerai
la variabile di conteggio ad ogni interrupt, ma appunto al raggiungimeno dei
cicli di clock prefissati.
Quindi p, partendo dallo start, incrementerai dopo 76 cicli (errore
3.8528ms), poi dopo 77 (errore complessivo5.4016ms), poi dopo 76 (errore
complessivo dallo start 1.5488ms),....
Come vedi non c'è nessun errore di conteggio dovuto ad approssimazione nei
calcoli.

> Al momento ti dico come ho risolto:
> ho scelto un fattore di prescaler 1:8 ho scelto per TMR1H 00X0B e per
> TMR1L 00XDC cosi' ho un interrupt ogni 100ms tondi cioe' una frequenza di
> 10Hz
> nell'istruzione dell' interrupt carico appunto:
>
> #int_TIMER1
> void TIMER1_isr()
> {
> set_timer1(0x0BDC);
> Ticker -= 1;
> if ( Ticker == 0 ) {
> Ticker = 10;
> seconds++;
> }
>
> Credo che cosi' si raggiunga una buona precisione legata alla tolleranza
> del quarzo con molta semplicita', che ne pensi?

A 20MHz ,con prescaler a 8 e il timer caricato con 0xBDC hai effettivamente
un interrupt ogni 100ms.
Il codice mi sembra corretto.


Due di Picche

unread,
Mar 18, 2009, 2:51:21 PM3/18/09
to

Pestando alacremente sulla tastiera "F. Bertolazzi"
<TOGL...@MAIUSCOLEtdd.it> ebbe l'ardire di profferire:

> Glielo ho già spiegato giorni fa (vedi "calcolare interrupt del timer"), ma


> sembra più interessato ad insegnarci la buona creanza che a cercar di
> capire quanto gli viene suggerito.

LOL... Avrebbe dovuto dar retta a te che lo avresti costretto a
cercarsi una fonte MOLTO PRECISA per effettuare la taratura di un non
ben specificato firmware solo teorico e dover lasciare tale fonte 24
ore collegata al suo orologio solo per la tarataura?

--
Everyone is entitled to my opinion!

F. Bertolazzi

unread,
Mar 18, 2009, 3:11:43 PM3/18/09
to
Due di Picche:

> LOL... Avrebbe dovuto dar retta a te che lo avresti costretto a
> cercarsi una fonte MOLTO PRECISA per effettuare la taratura di un non
> ben specificato firmware solo teorico e dover lasciare tale fonte 24
> ore collegata al suo orologio solo per la tarataura?

Veramente rispondevo a Massimo IW0HKG che parlava di tarare 1.000
esemplari. Ma già, tu leggi il NG solo per trovar pretesti per darmi
addosso, quindi ti sarà sfuggito.

Ma insomma, cosa vuoi da me? Ti ho già spiegato che non sono omosessuale e
che comunque le persone insignificanti e meschine non mi interessano.

F. Bertolazzi

unread,
Mar 18, 2009, 3:17:56 PM3/18/09
to
Due di Picche:

> Pestando alacremente sulla tastiera "F. Bertolazzi"
> <TOGL...@MAIUSCOLEtdd.it> ebbe l'ardire di profferire:
>
>> F. Bertolazzi:
>>
>>> registro di periodo
>>
>> Quello che nel PIC16F877 si chiama PR2.
>
> Eh si... TMR2. Peccato che "...The input clock (FOSC/4) has a
> prescale option of 1:1, 1:4 or 1:16..."

> cioè 200nS di risoluzione non 50nS... Come dicevo appunto.

Peccato che io non abbia mai sostenuto il contrario, e che comunque questo
non c'entri nulla con quanto ho scritto.

Ti rendi conto che sei entrato in una spirale senza uscita? Più ti incazzi,
più cerchi di darmi addosso, più mi dai addosso più spari cazzate, più
spari cazzate più ti incazzi.

Smettila, una buona volta. Non sei il mio tipo e non mi farai certo
cambiare idea attirando l'attenzione in questo modo.

lowcost

unread,
Mar 18, 2009, 6:24:57 PM3/18/09
to
Roberto P. ha scritto:

> Il codice mi sembra corretto.

si, ma la latenza viene accumulata ogni volta.

e il paziente e' in ritardo cronico patologico.

saluti
--
lowcost

diego

unread,
Mar 18, 2009, 6:40:04 PM3/18/09
to

"lowcost" ha scritto nel messaggio:

Puoi darmi qualche indicazione in piu'? il programma sta girando su una
scheda sperimentale al momento dopo circa 7 ore e' in ritardo di mezzo
secondo.


Due di Picche

unread,
Mar 18, 2009, 6:44:01 PM3/18/09
to

Pestando alacremente sulla tastiera "diego" <dieg...@email.it> ebbe
l'ardire di profferire:

> Puoi darmi qualche indicazione in piu'? il programma sta girando su una

> scheda sperimentale al momento dopo circa 7 ore e' in ritardo di mezzo
> secondo.

E' tutto normalissimo. Un quarzo standard ha un errore tra i 30 ed i
70ppm... Fai i tuoi calcoli. ..

--
Base 8 is just like base 10, if you are missing two fingers. - Tom Lehrer

diego

unread,
Mar 18, 2009, 6:52:03 PM3/18/09
to

"Due di Picche" ha scritto nel messaggio:

>
> Pestando alacremente sulla tastiera "diego" <dieg...@email.it> ebbe
> l'ardire di profferire:
>
>> Puoi darmi qualche indicazione in piu'? il programma sta girando su una
>> scheda sperimentale al momento dopo circa 7 ore e' in ritardo di mezzo
>> secondo.
>
> E' tutto normalissimo. Un quarzo standard ha un errore tra i 30 ed i
> 70ppm... Fai i tuoi calcoli. ..
>

Grazie, posso avere il tuo parere sulla strada seguita da me? a me e'
sembrata la piu' facile e funzionale


Due di Picche

unread,
Mar 18, 2009, 6:54:57 PM3/18/09
to

Pestando alacremente sulla tastiera "diego" <dieg...@email.it> ebbe
l'ardire di profferire:

> Grazie, posso avere il tuo parere sulla strada seguita da me? a me e'

> sembrata la piu' facile e funzionale

Beh, dipende da che genere di precisione hai bisogno. Senza alcuna
regolazione e utilizzando il timer in quel modo la precisione dipende
solo ed esclusivamente dal quarzo e puoi arrivare a sballare di una
cinquantina di secondi (in più o in meno) al mese.

--
This screen intentionally left blank.

diego

unread,
Mar 18, 2009, 7:09:14 PM3/18/09
to

"Due di Picche" ha scritto nel messaggio:

>


> Pestando alacremente sulla tastiera "diego" <dieg...@email.it> ebbe
> l'ardire di profferire:
>
>> Grazie, posso avere il tuo parere sulla strada seguita da me? a me e'
>> sembrata la piu' facile e funzionale
>
> Beh, dipende da che genere di precisione hai bisogno. Senza alcuna
> regolazione e utilizzando il timer in quel modo la precisione dipende
> solo ed esclusivamente dal quarzo e puoi arrivare a sballare di una
> cinquantina di secondi (in più o in meno) al mese.

Io sto cercando di imparare un po di C ed ho voluto fare qualche esperimento
con i timer e gli interrupt, quindi non era finalizzato ad un progetto
finito, il prototipo ha 3 led uno per i secondi uno per i minuti e l'altro
per le ore.

Personalmente pensavo "forse sbagliando essendo un essere umano" che volendo
fare un orologio tipo quelli che vengono venduti a 5 euro, la strada fosse
quella di compensare l'oscillatore quarzato con un piccolo compensatore,
fatto cio' avere un ritardo intero per poter scandire i secondi e da questi
fare il resto, ma in tutta la discussione vuoi per il fatto che mi e'
sfuggito qualcosa oppure non sapendo leggere non ho capito se la mia strada
e' percorribile seriamente "se fosssi stato DIO o l'equivalente amicone
Bertolazzi probabilmente avrei usato un riferimento atomico gestito
ovviamente da un micro ATMEL :-) "


Due di Picche

unread,
Mar 18, 2009, 7:16:51 PM3/18/09
to

Pestando alacremente sulla tastiera "diego" <dieg...@email.it> ebbe
l'ardire di profferire:

> Io sto cercando di imparare un po di C ed ho voluto fare qualche esperimento

> con i timer e gli interrupt, quindi non era finalizzato ad un progetto
> finito, il prototipo ha 3 led uno per i secondi uno per i minuti e l'altro
> per le ore.

Con 3 led? Non fai un po' fatica a leggere che ore sono?

> Personalmente pensavo "forse sbagliando essendo un essere umano" che volendo
> fare un orologio tipo quelli che vengono venduti a 5 euro, la strada fosse
> quella di compensare l'oscillatore quarzato con un piccolo compensatore,

Infatti in alcuni casi così vien fatto...

> e' percorribile seriamente "se fosssi stato DIO o l'equivalente amicone
> Bertolazzi probabilmente avrei usato un riferimento atomico gestito
> ovviamente da un micro ATMEL :-) "

..e avresti minimo realizzato una serie industriale da 10000 pezzi.
Per meno lui non si muove. ;-)

--
Who is General Failure and why is he reading my disk?

diego

unread,
Mar 18, 2009, 7:57:10 PM3/18/09
to

"Due di Picche" ha scritto nel messaggio:
>
> Pestando alacremente sulla tastiera "diego" <dieg...@email.it> ebbe
> l'ardire di profferire:
>
>> Io sto cercando di imparare un po di C ed ho voluto fare qualche
>> esperimento
>> con i timer e gli interrupt, quindi non era finalizzato ad un progetto
>> finito, il prototipo ha 3 led uno per i secondi uno per i minuti e
>> l'altro
>> per le ore.
>
> Con 3 led? Non fai un po' fatica a leggere che ore sono?

le prove le sto facendo con un cronometro di un economico orologio da polso
Casio, ho fatto partire i due insieme e verifico i tempi fra i due.


>
>> Personalmente pensavo "forse sbagliando essendo un essere umano" che
>> volendo
>> fare un orologio tipo quelli che vengono venduti a 5 euro, la strada
>> fosse
>> quella di compensare l'oscillatore quarzato con un piccolo compensatore,
>
> Infatti in alcuni casi così vien fatto...

Quali sono le altre strade percorribili?

>> e' percorribile seriamente "se fosssi stato DIO o l'equivalente amicone
>> Bertolazzi probabilmente avrei usato un riferimento atomico gestito
>> ovviamente da un micro ATMEL :-) "
>
> ..e avresti minimo realizzato una serie industriale da 10000 pezzi.
> Per meno lui non si muove. ;-)

Ma poi li venderebbe solo a gente super come lui :-)? che dici ne venderebbe
uno anche a me? :-(


Due di Picche

unread,
Mar 19, 2009, 5:58:04 AM3/19/09
to

Pestando alacremente sulla tastiera "diego" <dieg...@email.it> ebbe
l'ardire di profferire:

> Quali sono le altre strade percorribili?

Una č quella linkata nel thread, dove un timer veloce incrementa un
contatore. Cambiando la soglia limite del contatore si puň regolare
abbastanza finemente lo scostamento del conteggio regolando cosě la
precisione dell'orologio. Un altra, piů complicata, č quella di
termostatare il quarzo. In un vecchio progetto mi sembra di NE il
quarzo veniva accoppiato ad un transistor in TO220 e ad una ntc.
L'accrocchio veniva mantenuto ad una temperatura costante sui 40° se
non vado errato. In questo caso c'era il compensatore da regolarsi
una volta che il circuito entrava a regime termico.

> > ..e avresti minimo realizzato una serie industriale da 10000 pezzi.
> > Per meno lui non si muove. ;-)
>
> Ma poi li venderebbe solo a gente super come lui :-)? che dici ne venderebbe
> uno anche a me? :-(

Venderli? Dovrebbero funzionare prima di poterlo fare... ;-)

--
IBM: Ill-mannered Besotten Macrocasm

diego

unread,
Mar 19, 2009, 11:27:06 AM3/19/09
to

"Due di Picche" ha scritto nel messaggio:

>> Ma poi li venderebbe solo a gente super come lui :-)? che dici ne

>> venderebbe
>> uno anche a me? :-(
>
> Venderli? Dovrebbero funzionare prima di poterlo fare... ;-)

Ma come un DIO come lui non e' capace di far funzionare un micro ATMEL :-) ?

diego

unread,
Mar 19, 2009, 2:11:23 PM3/19/09
to
Ciao a tutti

Per cronaca, dopo circa 26 ore il ritardo accumulato e' di 1,5 secondi


Darwin

unread,
Mar 19, 2009, 3:29:22 PM3/19/09
to
> Un altra, più complicata, è quella di

> termostatare il quarzo. In un vecchio progetto mi sembra di NE il
> quarzo veniva accoppiato ad un transistor in TO220 e ad una ntc.
> L'accrocchio veniva mantenuto ad una temperatura costante sui 40° se
> non vado errato. In questo caso c'era il compensatore da regolarsi
> una volta che il circuito entrava a regime termico.

E' una soluzione classica adottata tuttora in strumenti di misura
precisi. In realtà, per funzionare al meglio, il quarzo viene tagliato
apposta per fare in modo che il minimo di deriva in temperatura abbia
luogo a 50°C, ovvero alla temperatura che viene mantenuta con il
circuito esterno.
Strumenti di gamma alta hanno anche un indicatore di allarme attivo
nelle fasi iniziali in cui il forno termostatizzato non è giunto in
temperatura.

Roberto P.

unread,
Mar 19, 2009, 3:33:11 PM3/19/09
to

"diego" <dieg...@email.it> ha scritto nel messaggio
news:49c28acd$0$701$5fc...@news.tiscali.it...

> Ciao a tutti
>
> Per cronaca, dopo circa 26 ore il ritardo accumulato e' di 1,5 secondi

Puoi provare a correggere il valore 0xBDC di una o 2 unità x cercare di
compensare le istruzioni che il micro deve eseguire per salvare lo stack
prima di entrare nell'interrupt (che influiscono probabilmente sull'errore).
Per essere preciso, però dovresti vedere il codice disassemblato e contare i
cicli di clock delle singole istruzioni.
Il pericolo è che vista la granularità introdotta dal prescaler,sarà
improbabile togliere il numero di cicli esatti.

Inoltre, in 26 ore il tuo interrupt è stato scatenato 10dsec * 60sec * 60min
*26ore= 936000 volte.
Con un errore massimo di 936000 * 0,002 = 18,72sec = 1,872sec.
Inoltre sempre se è un quarzo std ha una deriva termica di +-0,4ppm/°C, che
non è molto, ma che si fa sentire se qusta mattina hai aperto le finestre,
non so da te, ma qui la temperatura si è abbassata parecchio...;-)

lowcost

unread,
Mar 19, 2009, 4:45:13 PM3/19/09
to
diego ha scritto:

>> si, ma la latenza viene accumulata ogni volta.
>
> Puoi darmi qualche indicazione in piu'? il programma sta girando su una
> scheda sperimentale al momento dopo circa 7 ore e' in ritardo di mezzo
> secondo.

dal cpuclock che scatena interrupt (timer overflow) a quando tu scrivi
il valore iniziale nel timer (azzerando automaticamente il prescaler),
il core esegue varia roba: terminata l' istruzione corrente (o la
sezione critica o un altro isr) viene finalmente salvato il PC e
impostato il vettore interrupt, poi salva questo e quello e finalmente
esegue la isr del timer1: tutti questi clock che avevano incrementato il
prescaler o il timer sono persi quando ricarichi il timer; e' vero che
puoi contare i clock e compensare, ma non sai esattamente quanti clock
sono.

saluti
--
lowcost

F. Bertolazzi

unread,
Mar 19, 2009, 8:01:26 PM3/19/09
to
Roberto P.:

> Puoi provare a correggere il valore 0xBDC di una o 2 unità x cercare di
> compensare le istruzioni che il micro deve eseguire per salvare lo stack

Non vedo perché, visto che ha a disposizione un timer con registro di
periodo.

Roberto P.

unread,
Mar 20, 2009, 2:07:51 AM3/20/09
to

"F. Bertolazzi" <TOGL...@MAIUSCOLEtdd.it> ha scritto nel messaggio
news:1910s3prwqjzy$.17b36ad81xepn.dlg@40tude.net...

Se fosse possibile reimpostare il timer al valore 0xBDC esattamente quando
questo raggiunge lo zero, non ci sarebbero questi errori.
Ma 'purtroppo' quandi il timer raggiunge lo zero si sprecano alcune decine
di cicli di clock per provvedere al salvataggio dei registri nello stack,
per poi effettivamente riassegnare il valore ai registri TMR1H e TMR1L.
Questo sarebbe necesario anche se la parte del codice isr fosse scritta in
assembler, visto che per l'assegnazione del valore ai registri del timer
occorre in ogni caso 'sporcare' W, che quindi deve essere prima salvato
(forse si ridurrebbero però il numero di istruzioni, ma qui dipende la
compilatore e dall'ottimizzazione impostata).
Visto poi che il suo codice è in c, occorre analizzare quali istruzioni ha
messo il compilatore in cima alla sua chiamata isr, contare i cicli di clock
complessivi e variare il valore di conteggio del timer x tenerne conto.

Salvy

unread,
Mar 20, 2009, 7:57:19 AM3/20/09
to

"Roberto P." ha scritto nel messaggio:

> Se fosse possibile reimpostare il timer al valore 0xBDC esattamente quando
> questo raggiunge lo zero, non ci sarebbero questi errori.
> Ma 'purtroppo' quandi il timer raggiunge lo zero si sprecano alcune decine
> di cicli di clock per provvedere al salvataggio dei registri nello stack,
> per poi effettivamente riassegnare il valore ai registri TMR1H e TMR1L.
> Questo sarebbe necesario anche se la parte del codice isr fosse scritta in
> assembler, visto che per l'assegnazione del valore ai registri del timer
> occorre in ogni caso 'sporcare' W, che quindi deve essere prima salvato

> (forse si ridurrebbero perņ il numero di istruzioni, ma qui dipende la

> compilatore e dall'ottimizzazione impostata).

> Visto poi che il suo codice č in c, occorre analizzare quali istruzioni ha

> messo il compilatore in cima alla sua chiamata isr, contare i cicli di
> clock complessivi e variare il valore di conteggio del timer x tenerne
> conto.

Prima degli interrupt si devono salvare i dati nello stack, se il programma
al primo owerflow interrupt per timer 1 sta eseguendo la funzione1 con poche
varibili si fa un calcolo per vedere quanti ciccli occorrono, se invece sta
facendo la funzione 2 molto piu' complessa fai altri calcoli? poi alla fine
fai la media? mi sembra una strada impercorribile.


Roberto P.

unread,
Mar 20, 2009, 9:20:05 AM3/20/09
to

"Salvy" <Cogli...@elmerdoso.com> ha scritto nel messaggio
news:zwLwl.198386$Ca.3...@twister2.libero.it...

>
> "Roberto P." ha scritto nel messaggio:
>
[...]

> Prima degli interrupt si devono salvare i dati nello stack, se il
> programma al primo owerflow interrupt per timer 1 sta eseguendo la
> funzione1 con poche varibili si fa un calcolo per vedere quanti ciccli
> occorrono, se invece sta facendo la funzione 2 molto piu' complessa fai
> altri calcoli? poi alla fine fai la media? mi sembra una strada
> impercorribile.

Scusami, ma sai di che cosa stai perlando ?
Conosci l'architerrura del pic che sta usando il ns. amico ?
Prima di entrare in un interrupt, si esegue il salvataggio di registri e non
di variabili, e questo lo fa il compilatore nel caso il programma sia in
linguaggio ad alto livello.
Eventuali variabili globali che devono essere modificate sia nel ciclo del
programma che in interrupt devono essere dichiarate come di conseguenza (es.
come di tipo 'volatile').
Il 16f877 ha un solo indirizzo di interrupt, al quale saltare.
Poi all'interno di questa routine occorre verificare quale è l'evento cha ha
generato l'interrupt stesso.
Prima di questa verifica, in genere, occorre almeno salvare i registri W,
STATUS, PCLATH e FSR.

Il tutto si riduce a 15 istruzioni fisse e sempre eseguite ad ogni
interrupt, qualcosa del tipo (non ho testato nulla di quanto sotto, ma in
linea di massima dovrebbe essere corretto)

MOVWF Saved_W
SWAPF STATUS,W
CLRF STATUS
MOVWF Saved_Status
MOVF PCLATH,W
MOVWF Saved_Pclath
CLRF PCLATH
MOVF FSR,W
MOVWF Saved_Fsr

controllare il tipo di interrupt

BTFSS PIR1,TMR1IF
GOTO EXIT

poi si può passare al ricaricare i registri del timer1.

MOVLW 0x0B
MOVWF TMR1H
MOVLW 0xDC
MOVWF TMR1L

azzerare il flag intterupt
BCF PIR1,TMR1IF

decrementare il registro dei decimi ed incrementare i secondi

DECFSZ Ticker,F
GOTO EXIT
MOVLW 0x0A
MOVWF Ticker
INCF Second,F

EXIT
e ripristinare lo stato precedente

MOVF Saved_Fsr,W
MOVWF FSR
MOVF Saved_Pclath,W
MOVWF PCLATH
SWAPF Saved_Status,W
MOVWF STATUS
SWAPF Saved_W,F
SWAPF Saved_W,W
RETFIE

Questo se si lavora in assembler (o si vuole gestire questa parte in
assebler), se invece si vuole/necessita/preferisce lavorare in linguaggio ad
alto livello occorre vedere il codice generato e vedere quali istruzioni
sono inserite.

crow...@gmail.com

unread,
Mar 20, 2009, 10:21:00 AM3/20/09
to
On 18 Mar, 09:49, "F. Bertolazzi" <TOGLIe...@MAIUSCOLEtdd.it> wrote:
>
> Quasi quasi lo implemento sul mio timer per la pasta

Per un uso così specifico al tuo posto farei qualcosa
di più comodo:
PC sicronizzato con un time server atomico, lettore di codice
a barre per accedere immediatamente al data base dei tipi
di pasta, sensore di temperatura dell'acqua, feedback
del gradimento dell'utente del grado di cottura. Il resto è solo
un po' di software.

diego

unread,
Mar 21, 2009, 7:24:58 AM3/21/09
to

"Roberto P." ha scritto nel messaggio:

> Se fosse possibile reimpostare il timer al valore 0xBDC esattamente quando

> questo raggiunge lo zero, non ci sarebbero questi errori.
> Ma 'purtroppo' quandi il timer raggiunge lo zero si sprecano alcune decine
> di cicli di clock per provvedere al salvataggio dei registri nello stack,

> ..........

Statistica del compilatore:
ROM used: 180 words (2%)
Largest free fragment is 2048
RAM used: 20 (5%) at main() level
20 (5%) worst case
Stack: 2 worst case (1 in main + 1 for interrupts)


Provo a postare il codice prima in C poi l'assember generato dal
compilatore:

.................... enable_interrupts( INT_TIMER1 ); // Start
RTC
0064: BSF 03.5
0065: BSF 0C.0
....................
....................
....................
.................... }
0066: BCF 03.5
0067: BCF 0A.3
0068: BCF 0A.4
0069: GOTO 079 (RETURN)


.................... #int_TIMER1
.................... void TIMER1_isr()
.................... {
.................... set_timer1(0x0BDC);
*
0035: MOVLW 0B
0036: MOVWF 0F
0037: MOVLW DC
0038: MOVWF 0E
....................
.................... Ticker -= 1;
0039: MOVLW 01
003A: SUBWF 28,F
003B: MOVLW 00
003C: BTFSS 03.0
003D: MOVLW 01
003E: SUBWF 29,F
003F: MOVLW 00
0040: BTFSS 03.0
0041: MOVLW 01
0042: SUBWF 2A,F
0043: MOVLW 00
0044: BTFSS 03.0
0045: MOVLW 01
0046: SUBWF 2B,F
.................... if ( Ticker == 0 )
0047: MOVF 28,F
0048: BTFSS 03.2
0049: GOTO 059
004A: MOVF 29,F
004B: BTFSS 03.2
004C: GOTO 059
004D: MOVF 2A,F
004E: BTFSS 03.2
004F: GOTO 059
0050: MOVF 2B,F
0051: BTFSS 03.2
0052: GOTO 059
.................... {
.................... Ticker = 10;
0053: CLRF 2B
0054: CLRF 2A
0055: CLRF 29
0056: MOVLW 0A
0057: MOVWF 28
....................
.................... seconds++; //
Increment number of seconds
0058: INCF 2C,F
....................
....................
....................
.................... }
....................
.................... }


F. Bertolazzi

unread,
Mar 21, 2009, 8:26:38 AM3/21/09
to
crow...@gmail.com:

> On 18 Mar, 09:49, "F. Bertolazzi" <TOGLIe...@MAIUSCOLEtdd.it> wrote:
>>
>> Quasi quasi lo implemento sul mio timer per la pasta
>
> Per un uso così specifico al tuo posto farei qualcosa
> di più comodo:
> PC sicronizzato con un time server atomico,

Consuma troppo, e poi ci sarebbero delle latenze incontrollabili che ne
ridurrebbero la precisione. Potrei però cercare uno schema per ricevitore
radio, tipo quello delle sveglie della Oregon Scientific.

> lettore di codice a barre per accedere immediatamente al data base dei
> tipi di pasta,

Il processo è già ottimizzato: uso solo tre tipi di pasta: spaghetti e
fusilli De Cecco (non a caso il timer parte da 12 minuti) e fettuccine
Barilla (devo metterlo su sei minuti, ma l'encoder mi permette di farlo in
un paio di secondi, meno del tempo che occorrerebbe alla scansione).

> sensore di temperatura dell'acqua,

Ce l'ho già, del tipo "non a contatto". In pratica il coperchio della
pentola della pasta è di vetro. Se si vedono delle bolle, la termperatura è
corretta.

> feedback del gradimento dell'utente del grado di cottura.

Mi fido delle specifiche del costruttore.

> Il resto è solo un po' di software.

E che sarà mai? :D

F. Bertolazzi

unread,
Mar 21, 2009, 8:31:47 AM3/21/09
to
Roberto P.:

> Se fosse possibile reimpostare il timer al valore 0xBDC esattamente quando
> questo raggiunge lo zero, non ci sarebbero questi errori.

Esattamente per ciò, dopo aver consultato il datasheet del processore
obsoleto citato nel post originale, ho parlato fin dall'inizio di registro
di periodo.

Quando il processore esegue l'interrupt il conteggio sarà assai prossimo
allo zero e quindi parecchio lontano dal valore del registro di periodo,
che potrà essere modificato con tutto comodo e senza alcun rischio o
necessità di calcoli sui tempi di esecuzione.

diego

unread,
Mar 21, 2009, 8:36:12 AM3/21/09
to

"F. Bertolazzi" ha scritto nel messaggio:

> Quando il processore esegue l'interrupt il conteggio sarà assai prossimo
> allo zero e quindi parecchio lontano dal valore del registro di periodo,
> che potrà essere modificato con tutto comodo e senza alcun rischio o
> necessità di calcoli sui tempi di esecuzione.

Potresti indicarmi quale e' il registro da te indicato? voglio imparare se
mi dai una mano.........


F. Bertolazzi

unread,
Mar 21, 2009, 8:38:03 AM3/21/09
to
F. Bertolazzi:

Certo che se chi pone la domanda non solo non conosce il processore che sta
usando, ma non si preoccupa neppure di leggere ciò che gli ho scritto, e
chi gli risponde lo fa solo per rompermi i coglioni (non mi riferisco a te,
ma al mitomane esaltato) senza manco dare un'occhiata al datasheet, non
potremo far altro che perder tempo.

F. Bertolazzi

unread,
Mar 21, 2009, 8:40:07 AM3/21/09
to
diego:

Figurati se sto a predere altro tempo con un rompicoglioni che non legge
mai le risposte. Te l'ho già scritto, pirla.

diego

unread,
Mar 21, 2009, 8:47:10 AM3/21/09
to

"F. Bertolazzi" ha scritto nel messaggio:

>> Potresti indicarmi quale e' il registro da te indicato? voglio imparare
>> se
>> mi dai una mano.........
>
> Figurati se sto a predere altro tempo con un rompicoglioni che non legge
> mai le risposte. Te l'ho già scritto, pirla.

dai dico sul serio puo' essere che l'hai scritto ma non l'avro' notato cosa
ti costa nell'indicare una sigla di tre quattro caratteri? dai poi tu non
rispondi vogliamo incontrarci?


Roberto P.

unread,
Mar 21, 2009, 9:37:23 AM3/21/09
to

"F. Bertolazzi" <TOGL...@MAIUSCOLEtdd.it> ha scritto nel messaggio
news:pswf0yg4qamh$.iqc7741uyrpj.dlg@40tude.net...
> F. Bertolazzi:
>
[...]

> Certo che se chi pone la domanda non solo non conosce il processore che
> sta

> usando, ma non si preoccupa neppure di leggere ciň che gli ho scritto, e


> chi gli risponde lo fa solo per rompermi i coglioni (non mi riferisco a
> te,
> ma al mitomane esaltato) senza manco dare un'occhiata al datasheet, non
> potremo far altro che perder tempo.

Certo che se chi posta le risposte, lo facesse in modo costruttivo,con
l'intento di aiutare veramente, senza postare messaggi su messaggi con il
solo scopo di scatenare flames, perderemmo tutti meno tempo, senza dover
leggere messaggi inutili...

Ci vuole molto a scrivere CCPR1 ?

diego

unread,
Mar 21, 2009, 9:51:51 AM3/21/09
to

"Roberto P." ha scritto nel messaggio:

> Certo che se chi posta le risposte, lo facesse in modo costruttivo,con

> l'intento di aiutare veramente, senza postare messaggi su messaggi con il
> solo scopo di scatenare flames, perderemmo tutti meno tempo, senza dover
> leggere messaggi inutili...
>
> Ci vuole molto a scrivere CCPR1 ?

Grazie Roberto, questo e' lo spirito del gruppo AIUTARE.


diego

unread,
Mar 21, 2009, 10:04:46 AM3/21/09
to

"Roberto P." ha scritto nel messaggio:

> Ci vuole molto a scrivere CCPR1 ?

Se ho capito bene il Timer1 e' copiato in CCPR1 quindi andando a leggere
CCPR1H e CCPR1L dopo x interrupt dovrei veder cosa si perde?


F. Bertolazzi

unread,
Mar 21, 2009, 10:41:18 AM3/21/09
to
Roberto P.:

> Certo che se chi posta le risposte, lo facesse in modo costruttivo,con
> l'intento di aiutare veramente, senza postare messaggi su messaggi con il
> solo scopo di scatenare flames, perderemmo tutti meno tempo, senza dover
> leggere messaggi inutili...
>
> Ci vuole molto a scrivere CCPR1 ?

Ti invito, prima di fare ulteriori commenti, a leggere la mia risposta a
"calcolare interrupt del timer", leggere tutti i commenti di Due di Picche
ai post del sottoscritto negli ultimi sei mesi, ed infine le mie prime due
risposte a questo thread.

Ti sembra che le mie risposte non fossero chiare e sufficienti e che il
vago accenno allo sbruffone ritardato non fosse giustificato?

Il datasheet DS3029C, relativo ai PIC 16F87x, a pag 55 mostra il diagramma
a blocchi del Timer 2, dove il registro di periodo viene chiamato PR2.

Dei dettagli implementativi di quel cesso di timer non me ne potrebbe
fregar di meno, non vado certo a studiarmi tutto il datasheet per
rispondere ad uno che, come ha provato più e più volte, non legge
minimamente le risposte ai suoi quesiti balenghi.

Quanto ai messaggi inutili, non trovi che, fra tutti, se aveste letto le
mie prime risposte, non avreste scritto niente altro, salvo forse qualche
precisazione su come utilizzare il registro di periodo?

diego

unread,
Mar 21, 2009, 11:11:28 AM3/21/09
to

"F. Bertolazzi" ha scritto nel messaggio:

> Roberto P.:


>
>> Certo che se chi posta le risposte, lo facesse in modo costruttivo,con
>> l'intento di aiutare veramente, senza postare messaggi su messaggi con il
>> solo scopo di scatenare flames, perderemmo tutti meno tempo, senza dover
>> leggere messaggi inutili...
>>
>> Ci vuole molto a scrivere CCPR1 ?
>
> Ti invito, prima di fare ulteriori commenti, a leggere la mia risposta a
> "calcolare interrupt del timer", leggere tutti i commenti di Due di Picche
> ai post del sottoscritto negli ultimi sei mesi, ed infine le mie prime due
> risposte a questo thread.
>
> Ti sembra che le mie risposte non fossero chiare e sufficienti e che il
> vago accenno allo sbruffone ritardato non fosse giustificato?


Bertola' Ti ho dimostarto che di micro puoi capire qualcosa ma di altre cose
non capisci un cazzo permettimi di ricordati le spiegazioni che ti ho dato
sulla saldatura reflow, mica ti ho dato dell'incompetente? equesta e' la tua
natura ti diverti cosi'? continua a farlo per me non c'e' problema


lowcost

unread,
Mar 21, 2009, 11:22:35 AM3/21/09
to
F. Bertolazzi ha scritto:

> Certo che se chi pone la domanda non solo non conosce il processore che sta
> usando, ma non si preoccupa neppure di leggere ciò che gli ho scritto, e
> chi gli risponde lo fa solo per rompermi i coglioni (non mi riferisco a te,
> ma al mitomane esaltato) senza manco dare un'occhiata al datasheet, non
> potremo far altro che perder tempo.

e' anche certo che tu potresti aumentare il peso netto dei tuoi
interventi con una riduzione drastica della tara (gli inutili flames in
risposta alle provocazioni) ; diego avrebbe preso in considerazione da
subito il tuo suggerimento (che e' esatto, fatto salvo che occupa il
ccp1).

saluti
--
lowcost

lowcost

unread,
Mar 21, 2009, 11:09:49 AM3/21/09
to
diego ha scritto:

> Provo a postare il codice prima in C poi l'assember generato dal
> compilatore:

boh , a parte la variabile 32bit per contare 0_10 , voi come giudicate
questo compilatore ?

saluti
--
lowcost

diego

unread,
Mar 21, 2009, 11:23:52 AM3/21/09
to

"F. Bertolazzi" ha scritto nel messaggio:

>> Certo che se chi posta le risposte, lo facesse in modo costruttivo,con


>> l'intento di aiutare veramente, senza postare messaggi su messaggi con il
>> solo scopo di scatenare flames, perderemmo tutti meno tempo, senza dover
>> leggere messaggi inutili...
>>
>> Ci vuole molto a scrivere CCPR1 ?
>
> Ti invito, prima di fare ulteriori commenti, a leggere la mia risposta a
> "calcolare interrupt del timer", leggere tutti i commenti di Due di Picche

Sei veramente strano hai fatto un casino che non finisce mai semplicemnte
per non dirmi, vatti a rileggere "calcolare interrupt del timer" dove hai
scritto:
"Ad esempio, se il timer č a 16 bit, carichi 15.625 (5^6) nel registro di
compare, cosě avrai esattamente 5 interrupt al secondo."

Preferisci ingolfare una discussione piuttosto che scrivere due righe, io
sono pirla peche' effetivamente non ho letto tu sei proprio un pirlone per
qcome fai :-)


diego

unread,
Mar 21, 2009, 12:12:02 PM3/21/09
to

"lowcost" ha scritto nel messaggio:

>......... diego avrebbe preso in considerazione da


>subito il tuo suggerimento (che e' esatto, fatto salvo che occupa il
>ccp1).

Effettivamente ha dato un suggerimento ma in un messaggio diverso, sarebbe
bastato dire: "rileggi il messaggio calcolare interrupt del timer" ma in
effetti il suo modo di essere lo porta a fare quello che tutti hanno notato,
peraltro mi sono messo a rileggere un po' dei suoi messaggi, sono tutti ma
proprio tutti cosi', quindi e' il suo modo di essere, quando dice una cosa
dall' altra parte ci deve essere sempre chi deve capire, non possono esserci
fraintendimenti "io ho scritto di essere un principiante in questo campo,
questo e' un news di hobbysti", se solo fai un errore, sei un pirla un
ritardato ecc., e non meriti piu' le sue risposte, in parole semplici lui si
sente DIO, forse un giorno capira' che non e' cosi'.

Dal messaggio dove io dovevo capire, ho letto solo la prima parte perche'
era quella la risposta che per ME era pertinente alla richiesta , il dopo
era un di piu' apprezabile perhce' era una informazione importante, ma io
quando ho scritto quell' messaggio volevo capire come si facevano dei
calcoli lui ha dato la spiegazione, ho fatto i suoi calcoli ed
effettivamente mi sono trovato.

L'errore e' nato dopo 11/03/09 perche' non ho collegato il tutto con il suo
messaggio del 07/03/09

F. Bertolazzi

unread,
Mar 21, 2009, 12:42:25 PM3/21/09
to
lowcost:

> e' anche certo che tu potresti aumentare il peso netto dei tuoi
> interventi con una riduzione drastica della tara (gli inutili flames in
> risposta alle provocazioni)

Ho già provveduto. Due di Picche è sparito. Ora taglio pure diego, così
dovrei essere a posto. Mai usato il kill-file in anni ed anni, ora ci sto
prendendo gusto. Salvy lo tengo, voglio proprio vedere se scriverà mai
qualcosa di attinente l'elettronica...

>; diego avrebbe preso in considerazione da
> subito il tuo suggerimento

Sì, come ha preso in considerazione quello in "calcolare interrupt del
timer", che non mi pare contenesse spunti polemici (quanti altri post ha
scritto, dopo, chiedendo di fogli di Excel o programmi per calcolare le
costanti per 'sto belin di timer?), oppure i suggerimenti su come incollare
e saldare i connettori SMD, o sul programmatore/debugger Atmel...

diego

unread,
Mar 21, 2009, 12:55:50 PM3/21/09
to

"F. Bertolazzi" ha scritto nel messaggio:

>


> Ho già provveduto. Due di Picche è sparito. Ora taglio pure diego, così
> dovrei essere a posto. Mai usato il kill-file in anni ed anni, ora ci sto
> prendendo gusto. Salvy lo tengo, voglio proprio vedere se scriverà mai
> qualcosa di attinente l'elettronica...

Prima avevo dei sospetto ora ne sono sicuro , questo deve avere dei seri
problemi, cosa avrei fatto per essere messo nel suo Kill-File? semplicemente
non ho letto il vangelo secondo Bertolazzi?

>
>>; diego avrebbe preso in considerazione da
>> subito il tuo suggerimento
>
> Sì, come ha preso in considerazione quello in "calcolare interrupt del
> timer", che non mi pare contenesse spunti polemici (quanti altri post ha
> scritto, dopo, chiedendo di fogli di Excel o programmi per calcolare le
> costanti per 'sto belin di timer?), oppure i suggerimenti su come
> incollare
> e saldare i connettori SMD, o sul programmatore/debugger Atmel...

Cosa ho fatto di male? dove ho sbagliato dovevo chiedere il permesso a DIO
F. Bertolazzi?


Salvy

unread,
Mar 21, 2009, 2:39:06 PM3/21/09
to

"F. Coglionazzi" ha scritto nel messaggio:


> Ho già provveduto. Due di Picche è sparito. Ora taglio pure diego, così
> dovrei essere a posto. Mai usato il kill-file in anni ed anni, ora ci sto
> prendendo gusto. Salvy lo tengo, voglio proprio vedere se scriverà mai
> qualcosa di attinente l'elettronica...
>

Merda mi leggi, il tuo kill-file ficcatelo nel culo stronzo frocio


Due di Picche

unread,
Mar 21, 2009, 6:21:27 PM3/21/09
to

Pestando alacremente sulla tastiera "F. Bertolazzi"
<TOGL...@MAIUSCOLEtdd.it> ebbe l'ardire di profferire:

> Mai usato il kill-file in anni ed anni, ora ci sto
> prendendo gusto. Salvy lo tengo, voglio proprio vedere se scriverà mai
> qualcosa di attinente l'elettronica...

Il kill file è per le menti deboli, per chi è incapace di controllare
le proprie reazioni.

--
A successful tool is used to do something undreamed of by its author. - Johnson
News 2002 [v 2.3] / StopDialer / PopDuster - http://www.socket2000.com
Akapulce portal: http://www.akapulce.net

diego

unread,
Mar 22, 2009, 2:20:53 AM3/22/09
to

"Due di Picche" ha scritto nel messaggio:

>
>> Mai usato il kill-file in anni ed anni, ora ci sto
>> prendendo gusto. Salvy lo tengo, voglio proprio vedere se scriverà mai
>> qualcosa di attinente l'elettronica...
>
> Il kill file è per le menti deboli, per chi è incapace di controllare
> le proprie reazioni.
>

Mi sono letto un po' dei suoi stupidi messaggi ti aveva messo nel suo
kill-file gia' diversi mesi fa, ma poi misteriosamente ti legge, ti
risponde, ed afferma che non puo' leggerti perche' inserito nel suo
kill-file, biasimalo ha problemi ed ha bisogno di comprensione.

Lo stesso vale per Salvy doveva essere nel suo kill-file non sa da quanti
mesi, e' patetico oltre che ..............


F. Bertolazzi

unread,
Mar 22, 2009, 10:16:47 AM3/22/09
to
Salvy:

Certo che ti leggo, quando capita. Tu vieni sistematicamente segnato come
già letto da sempre. Non vali la mia attenzione, ma voglio tenere tutti i
tuoi messaggi. Un giorno me li guarderò tutti insieme per vedere se hai mai
fatto un solo intervento in cui parlassi di elettronica.

Anche Due di Picche, prima, veniva segnato come già letto. Ma era così
appiccicoso e rompicoglioni che non bastava più. Ora i suoi messaggi
vengono sistematicamente cancellati, non li potrò leggere né ora né mai.

0 new messages