Alcuni esempi di codice
Inizializzazione con sorgente di clock interno, senza interrupt
clrf T1CON
; Stop Timer1, Internal Clock Source,
; T1 osc. disabilitato, prescaler = 1:1
clrf TMR1H
; azzera registro H
clrf TMR1L
; azzera registro L
clrf INTCON
; disabilita interrupt generale
banksel
PIE1 ; Bank1
clrf PIE1
; disabilita interrupt periferico
banksel 0
; Bank0
clrf PIR1
; cancella flag
movlw 0x30
; clock interno, 1:8 prescaler
movwf T1CON
; Timer1 disattivato, T1 osc disabilitato
bsf T1CON, TMR1ON
; Timer1 attivato
;
; Polling overflow bit
;
T1_OVFL_WAIT:
btfss PIR1, TMR1IF
; bit set ?
goto T1_OVFL_WAIT
; no - loop
;
; Timer overflow
;
bcf PIR1, TMR1IF
; cancella flag |
Inizializzazione con sorgente di clock esterno, senza
interrupt
....
movlw 0x32
; clock esterno, 1:8 prescaler
movwf T1CON
; Timer1 disattivato, T1 osc disabilitato
bsf T1CON, TMR1ON
; Timer1 attivato
.... |
Inizializzazione con sorgente di clock dall' oscillatore esterno, senza
interrupt
....
movlw 0x3E
; clock esterno con oscillatore, 1:8 prescaler
; modo asincrono
movwf T1CON
; Timer1 disattivato
bsf T1CON, TMR1ON
; Timer1 attivato
.... |
Inizializzazione con sorgente di clock dall' oscillatore interno con interrupt,
in C.
void initTimer1()
{
TMR1CS = 0; // internal clock FOSC/4
T1SYNC = 1; // not synchronized
T1OSCEN = 0; // no ext. oscillator
T1CKPS1 = 1; // Prescaler bits 00=1:1, 01=1:2, 10=1:4, 11=1:8
T1CKPS0 = 1; // Prescaler 1:8
TMR1IF
= 0; // clear
interrupt
flag
TMR1ON = 1;
// enable timer 1
// enable Timer1 interrupt
TMR1IE = 1;
PEIE = 1;
GIE = 1;
} |
In C
|