Paso 5: Sistema de procesamiento
Los diseños presentados anteriormente se combinaron para darle el diseño final, con un PS solo controlarlos todos. La interfaz para todos los bloques son a través de IPs de GPIO. Ver la imagen de la Convención de nomenclatura para todos los módulos GPIO anteriores cuando se combina:
-gpio_trigger_control: módulo de Control de disparo, leer valores de amortiguamiento
-gpio_trigger_settings: establece el umbral y la submuestra
-screen_buffer_gpio: escribir valores en el buffer de pantalla
-encoder_btn_gpio: leer cuentas de encoder y botón valores.
Las bibliotecas fueron escritas (incluido) solía escribir píxeles leer encoder / botón entradas y leer valores de buffer de muestra. Por tiempo limitado, el código principal es algo grande, no tenía tiempo suficiente para que sea super bonita con funciones modulares.
Durante el desarrollo inicial, FreeRTOS iba a ser utilizado en el PS. debido a limitaciones de tiempo, esto fue abandonado y no tareas fueron utilizados. Sin embargo el proyecto FreeRTOS Demo CORTEX_A9_Zynq_ZC702 había estado trabajando de era todavía se utiliza, en el nombre de cambiar lo menos posible en el último minuto.
La versión final de mi osciloscopio sólo tenía escala vertical ajuste y ajuste del nivel de activación, por lo que fue sin usar la pantalla de división de tiempo.
El flujo básico del programa principal es:
1) comprobar entradas de codificador y botón, ajustar los valores de disparo adecuada
2) comprueba si ha activado el ámbito, sin embargo (repetir 1 y 2 hasta que ha activado)
3) borrar y actualizar los marcadores con V/segunda división.
4) leer todos los valores de búfer de gatillo.
5) calcular la posición de la línea de nivel de trigger en ubicaciones de píxeles
6) calcular la posición de la muestra actual y siguiente en píxeles
7) borrar todos los píxeles en la columna presente
8) trace una línea vertical de la fila de ubicación actual muestra a la fila siguiente del lugar de la muestra. Esto crea una pantalla de líneas verticales conectadas, en lugar de puntos inconexos.
9) dibujar la línea de nivel de trigger
10) trazar el triángulo para mostrar nivel de 0V
11) restablecer el gatillo para comenzar a tomar las muestras otra vez.
12) repetir a partir de 1.