23
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP Módulo Timers - Módulo Timers - PIC16F877A PIC16F877A Jadsonlee da Silva Sá [email protected] www.univasf.edu.br/~jadsonlee. sa

Aula Timers

Embed Size (px)

DESCRIPTION

timer no pic16f877A, exemplos em Assembler

Citation preview

Page 1: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timers - Módulo Timers - PIC16F877A PIC16F877A

Jadsonlee da Silva Sá

[email protected]/~jadsonlee.sa

Page 2: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

IntroduçãoIntroduçã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).

Page 3: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

IntroduçãoIntrodução Temporizador.

8 e 16 bits

Page 4: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

IntroduçãoIntroduçã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.

Page 5: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 0Mó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.

Page 6: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 0Mó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.

Page 7: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 0Módulo Timer 0 OPTION_REG.

Page 8: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 0Módulo Timer 0 INTCON.

Page 9: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 0Mó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.

Page 10: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 0Módulo Timer 0 Exemplo: Temporizador 0 - Assembly.

Page 11: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 0Módulo Timer 0 Exemplo: Temporizador 0 - Assembly.

Page 12: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 0Módulo Timer 0 Exemplo: Temporizador 0 – Linguagem C.

Page 13: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 1Mó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.

Page 14: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 1Módulo Timer 1 Registradores associados.

– Configuração de Timer1.

Page 15: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 1Módulo Timer 1 T1CON.

Temporizador ou contador

Page 16: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 1Módulo Timer 1 Exemplo temporizador 1 - Assembly.

Page 17: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 1Módulo Timer 1 Exemplo temporizador 1 - Assembly.

Page 18: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 1Módulo Timer 1 Exemplo temporizador 1 – Linguagem C.

Page 19: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 2Mó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.

Page 20: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 2Módulo Timer 2 Registradores associados.

Page 21: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 2Módulo Timer 2 T2CON.

Page 22: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 2Módulo Timer 2 Exemplo temporizador 2 – Linguagem C.

Page 23: Aula Timers

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Timer 2Módulo Timer 2 Exercício em grupo: faça um programa em

assembly equivalente ao programa em C do exemplo anterior.