REGISTER 7-1: T1CON: TIMER1 CONTROL REGISTER (ADDRESS: 10h)
U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— — T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON
bit 7 bit 0
bit 7-6 Unimplemented: Read as '0'
bit 5-4 T1CKPS1:T1CKPS0: Timer1 Input Clock Prescale Select bits
11 = 1:8 Prescale value
10 = 1:4 Prescale value
01 = 1:2 Prescale value
00 = 1:1 Prescale value
bit 3 T1OSCEN: Timer1 Oscillator Enable Control bit
1 = Oscillator is enabled
0 = Oscillator is shut off(1)
bit 2 T1SYNC: Timer1 External Clock Input Synchronization Control bit
TMR1CS = 1
1 = Do not synchronize external clock input
0 = Synchronize external clock input
TMR1CS = 0
This bit is ignored. Timer1 uses the internal clock when TMR1CS = 0.
bit 1 TMR1CS: Timer1 Clock Source Select bit
1 = External clock from pin RB6/T1OSO/T1CKI (on the rising edge)
0 = Internal clock (FOSC/4)
bit 0 TMR1ON: Timer1 On bit
1 = Disables Timer1
0 = Stops Timer1
Note 1: The oscillator inverter and feedback resistor are turned off to eliminate power drain.
Kan iemand het volgende een verduidelijken
bit 0 :
bit 1 : als deze 1 = moet je dan een klokpuls op pin RB6 zetten
Is de intenal clock stabiel genoeg
Een kristalklok is redelijk nauwkeurig. Meestal 30ppm.
Ik gok dat dat wel nauwkeurig genoeg is voor je (als je op de 100uS wilt meten).
Bit0: als je deze hoog maakt, dan loopt de timer. Laag, dan niet
Bit1: als je deze 1 maakt is de freq voor de prescaler Fosc / 4, dus in jouw geval 1MHz, deze i dus redelijk nauwkeurig.
Bit2: niet belangrijk bij gebruik van interne klok
Bit3: niet belangrijk bij gebruik van interne klok
Bit54: prescaler. Daardoor wordt de klokfrequentie nog eens gedeel voordat de timer telt.
Om 100uS increments te hebben zou je een prescaler van:
100 willen hebben. Immers 1/(Fosc/4) = 10*10^-6 (1us)
Dat ligt al buiten het bereik helaas van de prescaler. Dus neem je het maximum (8 )
bit5 = 1 en bit4 = 1