Perché TMR1 contare due volte?

X

x_ngine

Guest
Ciao a tutti,

Dal momento che voglio imparare Proteus, sono in via di sviluppo semplici circuiti con pic 16f877a iscritto il firmware con Hi-tech 9.50pl2 Picc.

Attualmente sto cercando di utilizzare TMR1 per creare un contatore a 16-bit.
Ho progettato il circuito è molto semplice: essa consiste in un pulsante collegato alla RC0 con un resistore di pull-up.Il mio scopo è semplicemente quello di vedere l'aumento della conta in TMR1L quando ho premuto il pulsante.

In questa situazione credo tra l'oscillatore RC0 e RC1 dovrebbe essere disattivato,
in quanto non ho bisogno di fare qualcosa perché mi oscilla generare il "orologio" con i mezzi del pulsante.

Il problema è che se disattivare l'oscillatore impostazione T1CON = 0b00000111 TMR1L viene incrementato ogni volta mi premere due volte il pulsante, mentre se l'oscillatore activare impostazione T1CON = 0b00001111 tutto è a destra.

Che cosa fa l'oscillatore fare?Non riesco a vedere il suo ruolo nel circuito ...questo è anche perché a guardare il sistema interno sulla 16f877a
della scheda sembra che il pin RC0 è collegato direttamente al TMR1L senza passare attraverso l'oscillatore ...

Help me please!

 
È necessario evitare il bouncing dei pulsante.

 
Ho pensato che in questo caso sarebbe Proteus non hanno analogico simulazione sui piedini.Cercherò il tuo suggerimento e mi relazione il risultato.

Grazie.

CiaoAggiunto dopo 2 ore 33 minuti:Ho collegato un condensatore di 100nF (I tryed anche con quelli più grandi) da perno a terra, ma la situazione non cambia, o, per dire la verità, si abbassa, ma solo un po '...Ho notato che ora non
c'è una regola per il incrementi:
a volte è incrementato da 2, altre volte da tre ...

Inoltre, se guardiamo al pin con l'oscilloscopio vedo la classica RC esponenziale della forma d'onda.

Come prima, il problema scompare una volta che ho impostato sulla internall oscillatore.

 

Welcome to EDABoard.com

Sponsor

Back
Top