Fala Maurício, tudo legal??
olha, já ouvi falar em "calibração do oscilador interno" mas não sei realmente como fazer isso, foi bom vc ter lembrado, vou pesquisar isso!!!
Mas realmente para trabalhar com tempo devo usar clock externo como vc mencionou!!
eletroinf, valeu pela dica, no datasheet do 16F628A fala alguma coisa sobre timer 1 ligado a um oscilador externo mesmo!
encontrei isso na página 51 do datasheet do PIC16F628A pelo que eu entendi (meu inglês é muito fraco)
Original
- Código: Selecionar todos
7.1 Timer1 Operation in Timer Mode
Timer mode is selected by clearing the TMR1CS (T1CON<1>) bit.
In this mode, the input clock to the timer is FOSC/4.
The synchronize control bit T1SYNC (T1CON<2>) has no effect since the internal clock is always in sync.
Tradução
- Código: Selecionar todos
7.1 Timer1 Operation in Timer Mode
O Timer Mode é conseguido pela configuração do registrador TMR1CS em 0x00.
Neste modo a entrada de CLOCK para o timer1 é o FOSC dividido por 4.
O bit de controle de sincronismo T1SYNC (T1CON<2>) não tem efeito desde que o clock interno esteja sempre em siscronismo.
Original
- Código: Selecionar todos
7.2 Timer1 Operation in Synchronized Counter Mode
Counter mode is selected by setting bit TMR1CS. In this mode the TMR1 register pair value increments on every rising edge of clock input on pin RB7/T1OSI when bit T1OSCEN is set or pin RB6/T1OSO/T1CKI when bit T1OSCEN is cleared.
If T1SYNC is cleared, then the external clock input is synchronized with internal phase clocks.
The synchronization is done after the prescaler stage. The prescaler stage is an asynchronous ripple-counter.
In this configuration, during SLEEP mode, the TMR1 register pair value will not increment even if the external clock is present, since the synchronization circuit is shut off.
The prescaler however will continue to increment.
Tradução
- Código: Selecionar todos
7.2 Timer1 Operation in Synchronized Counter Mode
O modo counter é selecionado pela configuração do bit TMR1CS. Neste modo o TMR1 o valor é incrementado na subida da borda do clock de entrada nos pinos RB7/T1OSI quando o bit T1OSCEN está configurado como 0x00.
Se T1SYNC está configurado como 0x00, então a entrada do clock externo é sincronizado com “internal phase clocks” (não sei o que isso significa).
A sincronização é feita depois do estágio do prescaler. O estágio do prescaler é contador de rippler asincrono.
Nesta configuração, durante o modo SLEEP, o “pair value” do registrador do TMR1 não incrementa se o clock externo esta sempre presente, desde que o circuito de sincronização esteja desligado.
Entretanto o prescaler vai continuar incrementar.
Original
- Código: Selecionar todos
7.2.1 EXTERNAL CLOCK INPUT TIMING FOR SYNCHRONIZED COUNTER MODE
When an external clock input is used for Timer1 in synchronized Counter mode, it must meet certain requirements. The external clock requirement is due to internal phase clock (Tosc) synchronization.
Also, there is a delay in the actual incrementing of the TMR1 register pair value after synchronization.
When the prescaler is 1:1, the external clock input is
the same as the prescaler output.
The synchronization of T1CKI with the internal phase clocks is accomplished by sampling the prescaler output on the Q2 and
Q4 cycles of the internal phase clocks.
Therefore, it is necessary for T1CKI to be high for at least 2Tosc (and a small RC delay of 20 ns) and low for at least 2Tosc (and a small RC delay of 20 ns). Refer to the appropriate
electrical specifications, parameters 45, 46, and 47.
When a prescaler other than 1:1 is used, the external clock input is divided by the asynchronous ripplecounter type prescaler so that the prescaler output is symmetrical. In order for the external clock to meet the sampling requirement, the ripple-counter must be taken into account.
Therefore, it is necessary for T1CKI to have a period of at least 4Tosc (and a small RC delay of 40 ns) divided by the prescaler value. The only requirement on T1CKI high and low time is that they do not violate the minimum pulse width requirements of 10 ns). Refer to the appropriate electrical specifications, parameters 45, 46, and 47.
Tradução
- Código: Selecionar todos
7.2.1 EXTERNAL CLOCK INPUT TIMING FOR SYNCHRONIZED COUNTER MODE
Quando a entrada de um clock externo é usado para o Timer1 em modo “synchronized Counter mode”, isso deve ter certos requerimentos. O requerimento do clock externo é a sincronização é devido a sincronização do “internal phase clock (Tosc)”.
Também existe um atraso (delay) na atual incrementação do registrador do “TMR1 register pair value” depois do sincronismo.
Quando o prescaler é 1:1, a entrada do clock externo é a mesma saída do prescaler.
A sincronização do T1CKI com o “internal phase clock” é realizado pela amostra da saída do prescaler nos ciclos Q2 e Q4 do “internal phase clock”.
Consequentemente, isto é necessário para o T1CKI ser elevado no mínimo 2 Tosc (e um pequeno atraso de RC de 20ns) e baixar no mínimo 2 Tosc (e um pequeno atraso de RC de 20ns). Consulte os parâmetros 45,46 e 47 para as devidas especificações elétricas.
Quando o prescaler diferente de 1:1 é usado, a entrada do clock externo é dividido pelo contador de rippler assíncrono tipo prescaler assim a saída do prescaler é simétrica. Para que o clock externo encontre o requerimento de amostra, o contador de rippler deve levar em
Conseqüentemente, isto é necessário para T1CKI tenha um período de pelo menos 4 Tosc (e um pequeno atraso de RC de 20ns) dividido pelo valor de prescaler. O único requerimento no T1CKI no tempo HIGH e LOW é eles não devem violar a largura de pulso mínimo de 10ns. Consulte os parâmetros 45,46 e 47 para as devidas especificações elétricas.
pelo que eu entendi, dá para ligar um cristal de, por exemplo, 32768MHz nos pinos B6 e B7. Usar esse cristal para controlar o timer1 e incrementar uma variável e usar outro cristal ou o oscilador interno para rodar o programa, será que é isso??
só não sei ainda como configurar isso ainda, mas vamos adiante!!