Tutorials - PIC peripherals

 

TIMER1

 


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

 

 


 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 08/04/13.