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