Étape 5: Système de traitement
Les dessins présentés précédemment ont été combinées pour donner la conception finale, avec un seul PS contrôlant tous. L’interface pour tous les blocs sont à travers GPIO IPs. Voir l’image pour la convention d’affectation de noms pour tous les modules GPIO précédents lorsqu’il est combiné :
-gpio_trigger_control : module de commande gâchette, lire les valeurs de la mémoire tampon
-gpio_trigger_settings : la valeur seuil et sous-échantillon
-screen_buffer_gpio : écrire des valeurs dans la mémoire tampon d’écran
-encoder_btn_gpio : lu encodeur comtes et touche les valeurs.
Bibliothèques ont été écrites (inclus) utilisé à pixels, lu encodeur / bouton entrées, lire et écrire les valeurs de tampon échantillon. En raison du temps limité, le code principal est assez grand, n’a pas eu assez de temps pour faire ça super avec fonctions modulaires.
Au cours du développement initial, FreeRTOS allait être utilisé dans le PS. faute de temps, cela a été abandonné et aucune tâche ont été utilisés. Cependant le projet de FreeRTOS démo CORTEX_A9_Zynq_ZC702 j’avais travaillé sur était encore utilisé, au nom de changer le moins possible à la dernière minute.
La version finale de mon oscilloscope n’avait réglage de l’échelle verticale et réglage du niveau de déclenchement, donc l’affichage de division du temps était inutilisée.
Le flux de base du programme principal est :
1) vérifier les entrées codeur et bouton, réglez correctement les valeurs de déclenchement
2) vérifier si la portée a déclenché mais (répéter 1 & 2, jusqu'à ce qu’il a déclenché)
3) effacer et mettre à jour les marqueurs montrant V/seconde division.
4) lire toutes les valeurs de mémoire tampon déclencheur.
5) calculer l’emplacement de la ligne de niveau de détente dans des endroits de pixels
6) calculer la situation actuelle et prochaine échantillon en pixels
7) effacer tous les pixels dans la présente colonne
8) Tracez une ligne verticale de la ligne de l’emplacement actuel d’échantillon au rang de l’emplacement suivant échantillon. Cela crée un affichage de lignes verticales reliées, plutôt que de points non connectés.
9) tracer la ligne de niveau de déclenchement
10) triangle de tirage pour afficher le niveau 0V
11) réinitialiser le déclencheur pour commencer à prendre des échantillons à nouveau.
12) répéter à partir de 1.