You are on page 1of 2

1 CICLOS MIENTRAS CONTROLADOS CON BANDERAS O INTRRUPCIONES

El manejo de las interrupciones en un Contralador puede resultar complejo, sin embargo, su


implementacin se ve simplificada dado que el fabricante del compilador usado provee un
esquema basado en una funcin RSI.
(Rutina de Servicio de Interrupcin) genrica la cual puede ser fcilmente modificada de
acuerdo a los requerimientos del usuario.
Cuando alguna de la fuentes de interrupcin se activa, el programa en ejecucin salta a la
direccin 0x0004 (Vector de interrupcin), en esa direccin debe encontrarse la RSI. Dado que
como pueden ser distintas fuentes de interrupcin y solo una funcin para atenderla, se debe
recurrir al uso de los Interruptor Flag.
(Banderas de interrupcin), los cuales estn asociados a las distintas fuentes de interrupcin.
Cada interrupcin para su adecuado funcionamiento, requiere una habilitacin y un proceso de
Configuracin en algunos casos. Para ello se usan los registros OPTION_REG (en CC5x es el
OPTION), INTCON,
PIE1 y PIR1. Adicionalmente PIE2 y PIR2 para otros perifricos.
Se debe incluir una biblioteca especial int16XXX.h, la cual permite el manejo de las
interrupciones. Dado que existen 3 fuentes de interrupciones se deben configurar los bits de
dichas fuentes como entrada.
La programacin se basa en lo siguiente, primero se configura en el mdulo principal la fuente
de interrupcin a utilizar. Una vez finalizado este proceso se habilitan las interrupciones a
travs de los flag correspondientes. El Controlador proceder entonces a realizar las tareas
habituales que no requieren de interrupcin, habitualmente se usa un loop infinito mediante un
ciclo while (1). Cuando ocurre la interrupcin, se setea la bandera correspondiente a la fuente
de origen y el programa salta a la direccin 0x0004. En dicha direccin se encuentra la RSI,
dentro de dicha funcin se debe inicialmente salvar los registros actuales, debe encuestarse el
flag correspondiente a la fuente de interrupcin, dado que est en 1, mediante un if es sencillo,
sin embargo, despus de terminada la atencin debe hacer un reset al flag, para permitir una
nueva interrupcin. Al terminar de ejecutar la RSI, esta restaura los registros y vuelve al
programa principal.
Cuando al controlador le llega un pedido de interrupcin ,lo atiende inmediatamente poniendo
una pausa en la ejecucin del programa que est corriendo mientras ejecuta una funcin de
interrupcin , denominada rutina de servicios de interrupcin , una vez terminada la interrupcin
el controlador vuelve al lugar donde fue interrumpido y retoma la ejecucin.
Las interrupciones se pueden decidir donde y cuando ejecutarlas.
Las banderas indican si est permitido o no las interrupciones de los dispositivos.
Las banderas o interrupciones (flag) son unas variables lgicas que se utilizan para conservar
el estado ( VERDADERO O FALSO ) y toma el otro valor dentro del cuerpo del ciclo para
preparar la siguiente repeticin estos flag se representan con variables lgicas y n los cuales
se incidirn en uno de los valores ( verdadero o falso ) y toma el otro valor cuando sucede el
evento que se est verificando mientras que en esta sentencia el nmero de veces que se ha
de repetir algunas instrucciones no se conoce por anticipado y el interior de la sentencia se
repite mientras se cumple unas determinadas condiciones , por esta razn estas sentencias se
denominan ciclo o sentencia condicional ejecutando una sentencia simple o compuesta de cero
o ms veces, dependiendo del valor de la expresin.


2. EN QU CONSISTE Y CULES SON LAS DIFERENCIAS DE LOS CICLOS MIENTRAS Y
HACER HASTA.
Estas son estructuras cclicas que se utilizan para ejecutar fragmentos de cdigo de un nmero
limitado de veces y son desde hasta (for), hacer mientras (while), y hacer hasta (do while)
CICLO HACER MIENTRAS:
Es conocido en los lenguajes de programacin como ciclo while, una de sus caractersticas es
que verifica si la condicin se cumple antes de ingresar al bloque de cdigo que se va a
repetir, el limite d ejecuciones estar dada por la condicin, es ejecutara mientras la condicin
devuelva un valor lgico verdadero.
Su composicin maraca el inicio del bloque de cdigo que se repetir en forma cclica.
Su condicin se refiere a una comparacin lgica que se evaluara en cada ejecucin del ciclo,
si esta operacin lgica entrega un resultado verdadero continua ejecutando el bloque de
cdigo, en caso contrario saldr del ciclo y continuara con la lnea de cdigo que esta a
continuacin del fin del mientras que indica el termino del bloque de cdigo que se repetir en
forma cclica.
CICLO HACER HASTA
Esta estructura, que en los lenguajes de programacin de alto nivel es conocida como do
while, es similar a la estructura hacer mientras, pero tiene dos grandes diferencias.
1. El cdigo que se encuentra del ciclo hacer hasta se ejecuta por lo menos una vez,
debido a que la comparacin y verificacin de la condicin est en la parte inferior del
cdigo
2. Para continuar requiere que la condicin entregue un resultado lgico falso, a
diferencia del ciclo hacer mientras que requiere que el resultado de la condicin sea
verdadero.
SU PRINCIPAL DIFERENCIA entre mientras y hacer hasta es que la operacin se ejecuta la
menos una vez. O sea la diferencia se encuentra en la forma en la cual limitan el nmero de
ocasiones que se ejecutara el cdigo.

You might also like