TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fastyx2 en 11 de Junio de 2007, 19:33:05
-
Amigos : el otro dia estaba haciendo un diagrama de flujo para poder ver como era el camino logico de las bifurcaciones , hasta que me di cuenta que no sabia donde dibujar una interrupcion :shock:
alguna idea?
desde ya gracias
-
Una interrupción es una llamada a subrutina o subprograma.
Un saludo.
-
¿En una hoja aparte? ... ja ja ja :D :D :D (es broma)
-
el concepto de que es una subrutina lo entendi , ahora lo de la hoja aparte ,es antes o despues de la primera? :D :D :D
yo me referia a como se hace referencia en un diagrama cuando la interrupcion es por un pulso externo y puede entrar en cualquier parte del main...
desde ya gracias por contestar !!!
-
Es una subrutina con principio y fin (retorno), pero que no es llamada desde ninguna parte del programa principal (se puede indicar mediante un comentario por que patilla se activa).
Un saludo.
-
¿En una hoja aparte? ... ja ja ja :D :D :D (es broma)
Pues Diego, se hace eso generalmente. Se hace una especie de seccion aparte del diagrama "principal" y alli se pone por ejemplo: "Inicio en ORG 0x004" y toda la rutina de interrupcion allí debajo.
En el diagrama principal sólo se hace mención a la interrupción, para avisar que está activa.
Aca te paso dos ejemplitos que hice, en Paint. No soy muy ducho y no tengo a mano ningun soft para crear diagramas pero creo que se entiende.
Cualquier cosa preguntá.
P.D. ¿Qué tiene que ver esto con lenguaje C?
Saludos.
-
Bruno, realmente se grafica así? Confieso que nunca hice un diagrama de flujo de una interrupción o mejor dicho, los he hecho pero para mi uso personal asi que no se si cumple algún 'estandar' prefijado con el cual uno debiera comunciarse con el mundo exterior.
En ese esquema de pensamiento y haciendo un paralelismo con otros lenguajes y plataformas, una interrupción en un pic que es algo así como hacer un diagrama de un 'evento' de windows que no son más que interrupciones por software.
Puede ocurrir en cualquier momento y por ende yo no lo graficaría como una flecha dentro del flujo del programa, pensando además que el evento o la interrupción pueden incluso ocurrir en una sección del código y en el resto no (porque la hayamos deshabilitado por ejemplo).
Está bueno el tema, yo también lo graficaría en una sección aparte y como mucho haría alguna referencia en el diagrama de flujo de que en esa sección de código pueden ocurrir los eventos "n1, n2 y n3" por citar un ejemplo.
¿qué opinan? ¿dije una gansada? (no me respondan) :D :D :D
-
Yo tambien siempre que dibuje mis diagramas de flujo trate a la interrupcion como una rutina aparte.
Esta mal como dice Maunix que se la señale como si fuera en un punto fijo del programa, porque es muy dificil saber donde caera la interrupcion...
De ahi a saber donde y como representarla tengo la misma duda del grupo!!! :lol: :lol: :lol: :lol:
-
Estemmm...cómo asegurarte que realmente se grafíca así no lo sé.
Así señalábamos las interrupciones cuando desarrollabamos diagramas para programas hechos en assembler(de PC).
Fijense el detalle que la flecha no ingresa a ningún símbolo, por lo que en realidad ingresa al flujo del programa y no a un punto en particular. Que ingrese justo arriba de un símbolo es otra cosa...en algún lado tiene que ir!
Habrá que revisar los libros...
Saludos.
-
No es tan complicado. Veamos la interrupción es una subrutina que comienza en el vector de interrupción y termina con un retorno de interrupción por lo tanto no hay que definir más, solo comienzo, pasos a ejecutar y finalización. Un ejemplo:
(http://img510.imageshack.us/img510/4172/diaginteae8.gif)
En cuanto a marcar donde se activa la interrupción mediante una flecha, no hace falta, puesto que debe de haber un bloque del flujo principal (o cualquier otro flujo) donde se active la interrupción o se desactiva, luego dicho bloque marca perfectamente la activación de la interrupción.
Un saludo
NOTA: Diagrama extraído de la página: http://r-luis.xbot.es/pic3/pic3_12.html
-
No es tan complicado. Veamos la interrupción es una subrutina que comienza en el vector de interrupción y termina con un retorno de interrupción por lo tanto no hay que definir más, solo comienzo, pasos a ejecutar y finalización.
Jesús, la duda no es en graficar el vector de interrupción en sí, sino en cómo indicar en el diagrama de flujo principal del programa que existe la posibilidad de que se bifurque a esas interrupciones.
Saludos
-
Deltro del programa principal no se marca ningún punto dado que no se realiza la llamada desde dicho programa y tampoco hace falta marcar con ninguna flecha a partir de que punto está operativa, ya que para eso estan los bloque de asignación donde se activará la interrupción correspondiente y los bloques de desactivación donde se inhabilitará.
Un saludo