|   
   Il Timer0I PIC18F hanno un Timer0 simile a quello dei 16F : 
    
      il TIMER0 viene letto e scritto con il registro TR0L
      invece che con TMR0
      l' OPTION_REG è stato rinominato T0CON
      il bit PSA (T0CON<3>) abilita il prescaler se
      azzerato e lo disabilita se posto a 1
      è diverso il controllo del prescaler dove PS2:PS0,
      OPTION<2:0> sono sostituiti da T0PS2:T0PS0, T0CON<2:0>, ma con
      funzionamento identico
      Il bit TOIF è settato quando TMR0 genera un interrupt
      (TMR0L in overflow), in modo identico ai 16F
      WDT e il suo postscaler non sono toccati da T0CON Per inciso,  RBPU , OPTION<7>, è stato spostato a
  RBPU, INTCON2<7> e INTEDG, OPTION<6> è passato a  INT0EDG,
  INTCON2<6>. Al di là di questo, TIMER0 può operare a 16 bit portando a 0
  T08BIT, T0CON<6> . In questo modo
  TMR0H e TMR0L sono i due bytes di accesso. TMR0H è aggiornato dal byte alto
  di TMR0 quando TMR0L è letto. L' interrupt del Timer0 è attivato nel modo a
  16 bit quando il conteggio passa da FFFFh a 0000h.   
 Azione
  
    
      
        | A riguardo di TIMER0 e OPTION_REG, le modifiche da
  effettuare riguardano : 
    
      rinominare e muovere OPTION, NOT_RBPU a INTCON2, NOT_RBUP
      rinominare e muovere OPTION_REG, INTEDG a INTCON2, INTEDG0
      canmbiare OPTION_REG in T0CON.
      rinominare PS2:PS0 in T0PS2:T0PS0
      la lettura/scrittura di TMR0 va fatta su TMR0L e non su
      TMR0 |      
   Il Timer1 e gli altri timerTimer1 funziona come per la famiglia 16F, ma, se usato come
  oscillatore con componenti esterni, dato il diverso processo produttivo, va
  verificata la correttezza di questi componenti.   Il Timer2Timer2 funziona come per la famiglia 16F e non sono richieste
  variazioni nel codice.   Il Timer3Timer3 è un quarto timer non presente nei mid range, quindi
  non ci sono problemi di conversione di codice. 
 
   
 |