universidade federal do vale do são francisco - univasf colegiado de engenharia da computação –...
TRANSCRIPT
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
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).
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
IntroduçãoIntrodução Temporizador.
8 e 16 bits
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.
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.
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.
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.
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 0Módulo Timer 0 INTCON.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP
Módulo Timer 2Módulo Timer 2 T2CON.
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.
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.