Gestion et créations d'affichage graphique ..... |
Le but de cette page est de clarifier la gestion et donc l'utilisation de l'affichage graphique, ce qui n'est pas vraiment une tâche facile. Commençons par télécharger la fiche technique des Hitachi HDM64GS12 ou AGM1264F ou autres écrans équivalents à condition qu'ils disposent d'une matrice 128 x 64. Nous voyons qu'en plus des dimensions, des caractéristiques électriques et d'autres informations, le tableau suivant est rapporté, qui devrait clarifier la manière dont chaque pixel individuel de l'écran est géré. Donc une fois que vous avez l'affichage, le PIC et les connaissances nécessaires, il ne reste plus qu'à écrire du code pour gérer l'affichage... et bien j'ai laissé tomber !! Si nous essayons de tracer des lignes verticales avec des boucles FOR, nous nous en sortons mais si nous voulons ensuite ajouter des lignes horizontales (sans supprimer les verticales), le problème devient très complexe. Heureusement, il y a une faille et elle s'appelle GLCD.C : c'est une bibliothèque écrite en C qui se charge d'interfacer le PIC avec l'écran. Malheureusement, ce fichier est couvert par le droit d'auteur et donc pas open source, mais si vous regardez sur Internet.... en fait vous pouvez trouver plusieurs versions et ci-dessous je signale deux versions, la première avec un 5 x 7 plus « élégant » matrice de caractères et une matrice 3 x 5 avec des caractères plus petits : Voyons comment fonctionne la bibliothèque : tout d'abord je les ai renommés GLCD_35.C et GLCD_57.C pour les utiliser comme je le souhaite. Vous pouvez alors appeler les différentes routines pour les fonctions suivantes : glcd_init(mode) : initialise le mode d'affichage ON OFF glcd_pixel(x,y,color) x ou position. et pos. vert. color ON OFF ON active le pixel OFF le désactive glcd_line(x1,y1,x2,y2,color) trace une ligne avec les coordonnées x1,y1 commence et x2,y2 termine la ligne ON et OFF écrit ou supprime glcd_text35(x,y, textptr ,color) écrit ou supprime le texte x et y en écrivant les coordonnées de départ textptr string pour écrire la couleur ON OFF écrit ou supprime. Comme vous pouvez le constater, chaque fonction inclut l'option ON et OFF qui est absolument essentielle car tout changement d'écriture ou quoi que ce soit d'autre sur l'écran nécessite d'abord de supprimer l'ancienne valeur, sinon l'écriture se chevauchera. glcd_fillScreen(color) s'allume ou s'éteint tous les pixels de l'écran glcd_circle (x,y,radius,fill,color), glcd _bar(x1,y1,x2,y2,width,color), glcd_rect(x1,y1,x2,y2,fill,color) moins utilisé Passons ensuite aux implémentations pratiques. Les deux implémentations proposées font référence à un ADC_Tester et à un oscilloscope numérique. Les deux utilisent le même schéma électrique, donc les mêmes composants ne changent que le logiciel à télécharger dans le PIC. À cet égard, si quelqu'un est intéressé, vous pouvez télécharger les fichiers source et .hex dans la section téléchargement. |
Comme vous pouvez le voir, ADC_Tester affiche l'état des lignes de sortie de l'ADC0820 et la valeur de la tension d'entrée. Il s'agit principalement d'une implémentation didactique, mais huit autres entrées des ports RA0-7 inutilisés pourraient être ajoutées. |
lOscilloscape numérique. Il s'agit du projet final pour lequel l'étude d'affichage est finalisée. Projet entièrement fonctionnel, mais toujours en cours pour tenter d'augmenter la bande passante (pour l'instant limitée à quelques KHz malgré l'utilisation de l'ADC0820 externe au PIC notoirement lent) de plus la synchronisation avec le signal d'entrée doit être améliorée, ainsi que un circuit d'entrée pour amener la tension d'entrée maximale à au moins 50 Volts. |
Oscilloscape numérique. Projet issu du site www.semifluid.com/?p=16 à partir duquel il est possible de télécharger le projet et le logiciel incluant la librairie à modifier . |