Beruflich Dokumente
Kultur Dokumente
com/s/fea2e934fea1405cb647
Principais:
- Interrupção Externa
- Estouro dos Timers
- Recepção serial completa
Identificadores
INTERRUPÇÕES
EXTERNAS
INTERRUPÇÕES
EXTERNA
0
INTERRUPÇÕES
EXTERNA
1
INTERRUPÇÕES
EXTERNA
2
Enable_interrupts(identificador);
Exemplos:
enable_interrupts (global);
enable_interrupts (int_ext);
enable_interrupts(global);
-> Equivalente a -> enable_interrupts( global | int_ext);
enable_interrupts(int_ext);
#include <18f2550.h>
#use delay(clock=20000000)
#int_ext
//idenTficador
da
interrupção
externa
0
void
trata_int0(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_EXT);
//
Habilita
interrupção
Global
e
Int_Ext
while
(true);
//
Aguarda
por
uma
interrupção
}
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Prof. Pedro Pedrosa
Ø Configurando borda de habilitação da Interrupção
ext_int_edge(L_TO_H)
Habilita interrupção externa quando o pino
específico da interrupção sair de 0V para 5V.
ext_int_edge(H_TO_L)
0V
0V
#include <18f2550.h>
#use delay(clock=20000000)
#int_ext
//idenTficador
da
interrupção
externa
0
void
trata_int0(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_EXT);
//
Habilita
interrupção
Global
e
Int_Ext
ext_int_edge(L_TO_H);
//
Int_Ext
sensível
a
borda
de
subida
//ext_int_edge(H_TO_L);
//
Int_Ext
sensível
a
borda
de
descida
while
(true);
//
Aguarda
por
uma
interrupção
}
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa
Prof. Pedro Pedrosa
Ø Priorizando ordem de execução de interrupções
Define a ordem de execução de interrupções quando
as mesmas são acionadas ao mesmo tempo.
Sintaxe:
Exemplos:
A6
C0
C7
C1
C6
C2
C5
C4
pedrosarf@ifce.edu.br Prof. Pedro Pedrosa