Engenharia
e Interrupção
OBJETIVOS
• Compreender a operação dos três timer´s implementados no PIC; • Compreender como funciona o bloco Capture/Compare/PWM; • Compreender como os timer´s 1 e 2 estão associados com o bloco Capture/Compare/PWM; • Utilizar as interrupções dos Timer´s e do bloco Capture/Compare/PWM para identificar eventos/gerar eventos;
TIMER 0
O módulo do Timer 0 possui as seguintes características: • Contador/Timer de 8 bits; • Registrador de contagem de escrita e leitura; • Pré-escalonador (divisor de freqüência) programável; • Utiliza sinal de clock interno ou externo; • Gera interrupção quando a contagem muda de FF para 00; • Permite selecionar o tipo de transição quando usa clock externo (Borda de subida ou descida).
O modo de operação do Timer 0 é definido a partir do bit T0CS (bit 5 do Reg. OPTION). No modo timer, o Timer 0 incrementa a cada ciclo de instrução (sem pré-escalonador). Se ocorrer uma escrita no registrador TMR0, o incremento é inibido pelos dois ciclos de instrução seguintes.
O modo de contagem é selecionado setando o bit T0CS. No modo de contagem , o Timer 0 incrementará a cada subida ou descida do sinal no pino RA4/TOCKL. A borda é definida pelo bit T0SE (bit 4 do Reg. OPTION).
Interrupção do Timer 0
A interrupção TMR0 é gerada quando o registrador TMR0 estoura (overflow), conta de FF para 00. Este overflow seta o bit T0IF (bit 2 do Reg. INTCON). A interrupção pode ser mascarada resetando o bit T0IE (bit 5 do Reg. INTCON). O bit T0IF deve ser apagado por software (na rotina de serviço de interrupção do Timer 0) antes de reabilitar a própria.
Pré-escalonador
Há um único pré-escalonador que é compartilhado com o WatchDogTimer de forma mutuamente excludente (se o Timer 0 usa o pré-escalonador o WatchDog não pode usar e vice versa). Os bits PSA e PS2:PS0 (bits 3 a 0 do Reg. OPTION) determinam o fator de