Timers - Univasf

Download Report

Transcript Timers - Univasf

Módulo Timers - PIC16F877A
Jadsonlee da Silva Sá
[email protected]
www.univasf.edu.br/~jadsonlee.sa
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Introdução
 O PIC16F877A possui três módulos timers:
–
Módulo Timer 0.
–
Módulo Timer 1.
–
Módulo Timer 2.
 Podem ser utilizados como temporizadores ou
como contadores (exceto timer 2).
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Introdução
 Temporizador.
8 e 16 bits
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Introdução
 Contador.
–
Pulsos externos (via pinos) são utilizados para
incrementar o valor do registrador.
–
O tempo não é determinado, apenas eventos são
contados.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 0
 Características.
–
Registrador de 8 bits.
•
Pode ser lido ou escrito.
–
Prescaler de 8 bits configurado via software
(compartilhado com o watchdog timer).
–
Seleção de clock interno ou externo.
–
Interrupção no overflow de FFh para 00h.
–
Seleção de borda do clock externo.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 0

Registradores associados.
–
TMR0  Registrador utilizado para marcar o tempo
(temporizador) ou contar eventos (contador) – Bancos 0 e 2.
–
INTCON  Habilitar e sinalizar interrupções TMR0 – Todos
os bancos.
–
OPTION_REG  Configuração do timer0 – Bancos 1 e 3.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 0

OPTION_REG.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 0

INTCON.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 0
 Interrupção TMR0.
–
Gerada quando ocorre um overflow de FFh para 00h
no registrador TMR0.
–
O overflow seta o bit TMR0IF de INTCON.
–
A interrupção ocorre se TRM0IE for setado.
–
O bit TMR0IF deve ser zerado via software.
–
Esta interrupção não pode “acordar” o processador
de um SLEEP, pois o timer é desligado durante um
SLEEP.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 0
 Exemplo: Temporizador 0 - Assembly.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 0
 Exemplo: Temporizador 0 - Assembly.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 0
 Exemplo: Temporizador 0 – Linguagem C.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 1
 Temporizador/contador de 16 bits.
–
Dois registradores de 8 bits – TMR1H E TMR1L.
•
–
Podem ser lidos e escritos.
Interrupção no overflow de FFFFh – 0000h, se a
interrupção TRM1 estiver habilitada.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 1
 Registradores associados.
–
Configuração de Timer1.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 1
 T1CON.
Temporizador
ou contador
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 1

Exemplo temporizador 1 - Assembly.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 1

Exemplo temporizador 1 - Assembly.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 1

Exemplo temporizador 1 – Linguagem C.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 2

Temporizador de 8 bits com prescaler e postscaler.
–

Pode ser lido e escrito.
Possui um registrador de período PR2.
–
TRM2 incrementa de 00h até PR2 e retorna para 00h.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 2

Registradores associados.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 2

T2CON.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 2

Exemplo temporizador 2 – Linguagem C.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 2

Exercício em grupo: faça um programa em assembly
equivalente ao programa em C do exemplo anterior.
Universidade Federal do Vale do São Francisco - UNIVASF
Colegiado de Engenharia da Computação – CECOMP