Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA:
AUTORES:
MATERIA:
PROGRAMACION DE MICROCONTROLADORES
DOCENTE:
CURSO:
6º SEMESTRE TELEMÁTICA
2019 – 2020
INVESTIGAR SOBRE EL CONCEPTO DE INTERRUPCIÓN EN LOS
MICROCONTROLADORES (INTERRUPCIONES EXTERNAS TIPO INTO,
INT1 Y POR CAMBIO EN PINES).
Por ejemplo, para monitorear el esta- do lo´gico que tiene un pin, habra´ que
leer su valor continuamente; si en un momento espec´ıfico este pin tiene 5 V
y no se lee, debido a que el micro- controlador esta´ ejecutando otras ins-
trucciones, se corre el enorme riesgo que cuando se lea, el valor del pin ha
cambiado sin ser detectado por el mi- crocontrolador, perdiendo informacio´n
valiosa del sensor o sistema.
Tipos de interrupciones
En caso de ser necesario habilitar el bit PEIE del registro INTCON (necesario
para todas las interrupciones con excepcion de INTE y RBIE).
Habilitar el bit de habilitacion global de interrupciones GIE del registro
INTCON.
Aunque el pic cuenta con 10 fuentes distintas de interrupción solamente tiene un vector
de interrupción por lo que si se habilitan varias interrupciones al momento de
presentarse cualquiera de ellas el programa saltara a la misma rutina de interrupcion y es
responsabilidad del programador crear una rutina que identifique la fuente de la
interrupcion.
Aquí un ejemplo de interrupciones en C
void pulse(){
set_rtcc(100); ////interrupcion rtcc
output_high(PIN_B7); //prende led
delay_us(1000);
output_low(PIN_B7); //apaga led
}
void main(){
set_tris_b(0x00); //todos los puertos b como salida
set_rtcc(100); //obtenemos interrupcion
setup_counters(RTCC_INTERNAL, RTCC_DIV_8); //activa pre-escaler
enable_interrupts(INT_RTCC); //activamos interrupcion de rtcc
enable_interrupts(GLOBAL); //activamos todas las interrupciones
while(TRUE); //ciclo infinito
}
view rawejemplo1.c hosted with ❤ by GitHub
Al terminar nuestro diagrama en el proteus le damos doble click al pic y le damos click
en la carpeta para asi escoger el .HEX que nos creo el compilador que estemos usando
en este caso el PCW compiler.