Engenharia

Disponível somente no TrabalhosFeitos
  • Páginas : 13 (3129 palavras )
  • Download(s) : 0
  • Publicado : 8 de maio de 2012
Ler documento completo
Amostra do texto
PIC: Blocos Timer, Capture/Compare/PWM


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 paraidentificar 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 detransiçã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 deescalonamento da freqüência do sinal de clock do Timer 0. Quando atribuído ao Timer 0, todas as instruções que escrevem para o registrador TMR0 (CLRF 1, MOVWF 1, BSF 1,x...) apagarão o contador do pré-escalonador mas não alterarão a sua configuração.
Registrador OPTION
[pic]

Registradores associados ao Timer 0
[pic]

TIMER 1
O módulo Timer 1 é um timer/contador de 16 bits, dividido em doisregistradores de 8 bits (TMR1H e TMR1L), que são de escrita e leitura. O par de registradores (TMR1H e TMR1L) incrementa de 0000h a FFFFh e retorna a 0000h (overflow). A interrupção TMR1, se habilitada, seta o bit de flag TMR1IF (bit 0 do Reg. PIRI) quando ocorre o overflow. Essa interrupção pode ser habilitada/desabilitada setando/resentando, respectivamente, o bit de habilitação de interrupçãoTMR1IE (bit 0 do Reg. PIE1).

O Timer 1 pode operar de dois modos:
• Como timer: Neste modo o Timer 1 incrementa a cada ciclo de instrução;
• Como contador: Neste modo o Timer 1 incrementa a cada transição do sinal de clock externo.
O modo de operação é determinado pelo bit de seleção de clock, TMR1CS (bit 1 do Reg. T1CON).

O Timer 1 pode ser habilitado/desabilitado setando/resetando,respectivamente, o bit de controle TMR1ON (bit 0 do registrador). O Timer também possui um reset interno que pode ser gerado pelos módulos “Capture/Compare/PWM - CCP”. Quando o oscilador do Timer 1 está habilitado (T1OSCEN setado), os pinos RC1/T1OSI/CCP2 e RC0/T1OSO/T1CKL tornam-se entradas independente do valor dos bits 1 e 0 do registrador TRIS, que são ignorados.

Resetando o Timer 1 usando umasaída de Trigger do módulo CCP
Se o módulo CCP1 ou CCP2 (este apenas no PIC 16F877) é configurado no modo de comparação para gerar um “special event trigger” (CCP1M3:CCP1M0 = 1011), esse sinal resetará o Timer 1. Nos casos em que uma escrita coincide com um “special event trigger” de CCP1 ou CCP2, a escrita terá precedência. Nesse modo de operação os registradores CCPRxH:CCPRxL tornam-se os...
tracking img