Diagrama a bloques interrupciones

Description

Flowchart on Diagrama a bloques interrupciones, created by Hugo González on 17/04/2018.
Hugo González
Flowchart by Hugo González, updated more than 1 year ago
Hugo González
Created by Hugo González about 6 years ago
25
0

Resource summary

Flowchart nodes

  • Main
  • No
  • ¿La temperatura es <28°C?
  • Se enciende el LED azul  
  • Si
  • Se enciende el LED rojo    
  • Graficamos la medición de la temperatura    
  • Habilitamos el reloj al modulos PORTD , PORTB y PORTA  
  • Configuramos los periféricos  PORTD , PORTB y PORTA
  • Habilitamos como alternativa 1 al PORTB18, PORTA5 y  PORTD2
  • Habilitamos el vector de interrupción del PORTD y bajamos su prioridad a 2
  • 1==1
  • ¿La conversión ya se realizó?
  • Si
  • No
  • resultado*=0.04577
  • Si
  • resultado/=10
  • Main
  • Habilitamos el reloj al modulo ADC0, al puerto donde vayamos a conectar el display, el sensor y el zumbador.  
  • Creamos la tarea para que el usuario ingrese su edad y revisar que su BPM no sea demasiado alto
  • Creamos la tarea para leer el valor del sensor.
  • Creamos la tarea para activar el zumbador. 
  • Creamos la tarea para mandar el valor de BPM a la pantalla.
  • Creamos la tarea para mandar el valor del sensor al Serial plotter.
  • Leemos el valor del sensor y lo mandamos al serial plotter y a la pantalla.
  • ¿El pulso fue alto?
  • Si
  • Activar y desactivar el zumbador
  • ¿El pulso es anormal?
  • Si
  • Mandar a pantalla mensaje de alerta y dejar activado el buzzer
  • No
  • No
  • Si
  • No
  • Habilitamos como salida al PORTB18, PORTA5 y  como entrada al PORTD2
  • Creamos un nuevo evento: eventoAlarma
  • Creamos la tarea "parpadea_led" con prioridad 2
  • Creamos la tarea "alarma" con prioridad 5
  • Iniciamos el Scheduler
  • End
  • Si
  • No
  • Si
  • No
  • Inicio
  • Cerramos todas las ventanas abiertas en Matlab, limpiamos el área de trabajo y la ventana de comando
  • Establecemos el tiempo de grabado y la frecuencia de grabación
  • Se inicia la grabación, se guarda la grabación y se lee la grabación
  • Normalizamos el audio del usuario
  • Selección de paleta a modificar
  •   ¿La opción es válida?
  • No
  • Selección de paleta a la cual se quiere cambiar
  •   ¿La opción es válida?
  • No
  • Si
  • Si
  •   ¿La opción es válida?
  • No
  • Se crean vectores de las paletas del sistema
  • Se divide la imagen original en sus tres canales (rojo, verde y azul)
  • Si
  • Se obtienen las dimensiones de la imagen original (m,n)
  • Se umbralizan los 3 canales (todo pixel con valor menor a 30 será convertido a 0 y los demás se quedarán igual)
  • A
  • A
  •   ¿Se cambiarán paletas de colores?
  • Entra a la parte correspondiente para la paleta de color seleccionada
  • Barrido de la imagen
  •      ¿Los valores del pixel quedan        dentro de la paleta?
  • Cambiar el valor del pixel por los de la paleta seleccionada
  • Deja el valor del pixel original
  • ¿Ya se termino el barrido?
  • Si
  • No
  • No
  • Si
  • No
  • Entra a la parte correspondiente para la paleta de color seleccionada
  • Barrido de la imagen
  •      ¿Los valores del pixel quedan        dentro de la paleta?
  • Deja el valor del pixel original
  • Si
  • Promediar el valor de los 3 canales y ponerle ese valor a cada canal en el respectivo pixel
  • ¿Ya se termino el barrido?
  • No
  • No
  • Concantenar los tres canales
  • Mostrar la imagen final
  • Fin
  • Si
  • Si
  • Leemos los audios pregrabados
  • Normalizamos los audios de la base de datos
  • Obtenemos el coeficiente de error de la base de datos contra la grabación
  • Determinamos el menor coeficiente de error
  • De acuerdo al valor de min_error, el cual es el menor coeficiente de error, se determina que canción es la de la grabación
  • Mostramos las gráficas del sistema
  • Fin
  • Inicio
  •   ¿Se quiere mover      el servomotor?
  •   ¿Se quiere mover el servomotor 180°?
  •   ¿Se quiere mover el servomotor 90°?
  •   ¿Se quiere mover el servomotor 0°?
  • ¿El mútex está  disponible?
  • El servomotor se mueve 180°
  • El servomotor se mueve 90°
  • El servomotor se mueve 0°
  • No
  • No
  • No
  • No
  • Si
  • Si
  • Si
  • Si
  • Si
  • Inicio
  • Indicamos las librerías a utilizar
  • Declaramos los semáforos y el mútex
  • Declaramos la variable necesaria para dar y quitar recursos desde una interrupción
  • Declaramos las subrutinas empleadas
  • Declaramos las variables a emplear en el sistema
  • Inicializamos la tarjeta KL25Z
  • Habilitamos el reloj para el PORTD, el PORTB y el TPM2
  • Habilitamos los pines 0, 2 y 3 del PORTD como pines para interrupciones
  • Bajamos la prioridad del vector de interrupciones del PORTD
  • Habilitamos el vector de interrupciones del PORTD
  • Generamos una señal de PWM  de 20 ms
  • Configuramos el PORTB2 como alternativa 3
  • Creamos la "Tarea1_180" con prioridad 7
  • Creamos la "Tarea2_90" con prioridad 5
  • Creamos la "Tarea2_90" con prioridad 3
  • Creamos los 3 semáforos y el mútex
  • Iniciamos el scheduler
  • 1==1
  • Si
  • Tarea3_0
  • Tomamos el recurso del semáforo"Smf3"
  • Tomamos el recurso del mútex
  • Igualamos grados a 0
  • LLamamos a la subrutina Subfuncion
  • Liberamos el recurso del mútex
  • Subfuncion_servo
  • grados<51
  • grados_modificados=((grados*22)+1000)
  • grados>50 && grados<101
  • grados_modificados=((grados*18)+1000)
  • grados>100 && grados<181
  • grados_modificados=(((grados-9)*21)+1000)
  • Mandamos grados_modificados como el valor del canal para PWM
  • Generamos un retardo para que el servo pueda llegar a la posición indicada sin problema
  • Fin
  • Si
  • Si
  • Si
  • No
  • No
  • PORTD_IRQHandler
  • Igualamos el vector de las interrupciones del PORTD a banderas
  • Limpiamos las banderas del vector de interrupciones del PORTD
  • banderas & (1<<0)
  • Libera el recurso del semáforo "Smf1"
  • banderas & (1<<2)
  • banderas & (1<<3)
  • Libera el recurso del semáforo "Smf2"
  • Libera el recurso del semáforo "Smf3"
  • Fin
  • Si
  • Si
  • Si
  • No
  • No
  • KL25Z
  • Teclado
  • Pantalla
  • Sensor
  • Buzzer
Show full summary Hide full summary

Similar

Arquitectura Microcontrolador PIC18F4550
José Alberto Beristain
Características de la tarjeta Raspberry Pi
Jose Luis Paternina
Sistemas embebidos
David Alberto Hernández Poot
ARQUITECTURA DE LOSMICROCONTROLADORES PIC OscarAcosta G
Oscar Acosta González
Arquitectura de microcontroladores
Gregorio Antonio Monrreal
Sistemas embebidos
Gerardo Enrique Pacheco
Sistemas embebidos
Ruth Díaz
Arquitectura Microcontrolador PIC18F4550
CESAR AUGUSTO CIRIACO MARTINEZ
La Electrónica
Efrén Lozano
Chemistry Module C2: Material Choices
James McConnell