Escolar Documentos
Profissional Documentos
Cultura Documentos
Pedro Pedrosa
h"p://www.facebook.com/lproFfcemaracanau
h"p://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4227622E1
pedrosarf@ifce.edu.br
Prof. Pedro Pedrosa
Ø Definição
Interrupção gerada pelo estouro de um contagem
interna do MCU.
Enable_interrupts(identificador);
Exemplos:
enable_interrupts (global);
enable_interrupts (int_timer0);
enable_interrupts(global);
-> Equivalente a -> enable_interrupts( global | int_timer0);
enable_interrupts(int_timer0);
Aula_08_v1_Fmer_estouro_contagem_maxima.mov
Solução
Aula_08_v2_contagem_menor_maximo.mov
Aula_08_v3_Fmer_estouro_prescaler.mov
#include <18f2550.h>
#use delay(clock=20000000)
#int_Fmer0
//idenFficador
da
interrupção
externa
0
void
trata_t0(void)
//
Trata
interrupção
externa
0
{
output_high
(pin_b7);
//
Acende
LED
para
demonstrar
que
houve
interrupção
delay_ms
(250);
output_low
(pin_b7);
//
após
250
ms
apaga
LED
}
void
main()
{
enable_interrupts(GLOBAL|INT_TIMER0);
//
Habilita
interrupção
Global
e
Int_TIMER0
setup_Fmer_0(RTCC_INTERNAL|RTCC_DIV_64);
//configura timer 0 com clock interno e prescaler 64
while
(true);
//
Aguarda
por
uma
interrupção
}
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Prof. Pedro Pedrosa
Ø Contagem máxima (Prescaler P Máximo)
16
Timer 0 -> 16 bits 2 = 65536 us = 0,065536 s
Timer 0 -> P=256 x = 16,777216 s
16
Timer 1 -> 16 bits 2 = 65536 us = 0,065536 s
Timer 1 -> P=8 x = 0,524288 s
8
Timer 2 -> 8 bits 2 = 256 us = 0,000256 s
Timer 2 -> P=16 x = 0,002048 s
set_timer_0(20);
int a = get_timer_0();
Nbits
2 * Vprescaler - TD
Vinit = ________________
Resultados
em
microsgundos
(uS)
Vprescaler
Exemplos: