Go Down

Topic: TMP36 le retour (Read 340 times) previous topic - next topic

pomme-poire

 Il faut me tutoyer.
Restons calme,

je l'ai fait rapide car c'était pas mon sujet.

Par ailleurs, j'ai écrit "dignes d'interet": j'avais insisté pour que les étapes intermédiaires du calcul soient affichées pour dépanner, mais est ce judicieux (au moins sur l'écran, qui doit rester sobre et sexy) en final (on peut cependant les garder sur le port série, si on ne se noye pas avec des dizaines de lignes...)
bien évidement. le port série n'était là que pour pouvoir utiliser le code sans posséder d'afficheur lcd .
Et bien évidement, un code qui servira pour de vrais sera optimiser pour ne rafraîchire les variables que si nécessaire !
Je ne vais pas rafraîchire la température sur un thermostat toutes les 3 millisecondes. 

Je réagis à Si vous avez plusieurs variables dignes d'interet à afficher, rien n'empêche de faire un ou logique || pour décider de rafraîchir l'écran (l'une au moins des variables a suffisamment changé pour qu'un rafraîchissement s'impose).

Je pense qu'il faudrait ne toucher qu'aux pixels qui on varié.

donc (toujours je pense)  qu'il va falloir aborder d'une manière graphique plutôt que de se contenter du jeux de caractère.

Une première étape améliore grandement les choses : juste avant d'afficher un caractère chantant, "j'imprime" l'ancien en noir ce qui supprime quasiment le clignotement mais pas complètement, un langage évolué puis compilé, c'est pas comme si on écris en assembleur.

Quand on écris sur ce type d'afficheur, si j'écris "8" et plus tard je le remplace par '1' le "8" ne s'efface pas, on écris  " par dessus " pas donc je dois soit :

- rafraîchir totalement
- imprimer une page vierge est tout recopier
- effacer les pixels indésirables et les remplacer par la couleur du fond.

dans ce dernier cas qui est le bon (me semble il):

 je traite comme un sprit mon caractère.

2 solutions :

- j'efface mon sprit en utilisant le jeux de caractère donc je fait une action double et ....c'est 2 actions , ça va si pas grand chose ne bouge

- je crée mes propre sprit (je savais le faire sur attari en assembleur mais alors c'est loin) qui occupe l'espace . Là, je n'ai plus qu'une action.
Et je pourrais faire des caractères de tailles plus grande (je suis vieux et presbyte (et casse c,,,) qui ressembles à quelques chose.

Dans les deux cas, si par exemple je doit imprimer une variable, cela m'oblige à analyser cette variable . Exemple, x=2000, tftprint (x) vas écrire 2000. Si x devient 2200, je ne dois pas écrire 2200 mais _2__,  je conserve 2_00, donc juste le _2__ vas clignoter. Ce qui va être plus " sexy" , mais c'est des lignes de codes !

Peut être existe il d'autres solutions, surement même , je suis loin de tout connaître. 

dbrion06

Je voyais une solution beaucoup plus simple, ne rafraîchissant que des rectangles contenant du texte (plus rapide que de tout rafraîchir, ne nécessite pas de mémoriser le texte précédent pour le mettre à la couleur d'arrière plan, permet de mettre des fonds de diverses couleurs... ainsi que les textes)

fdufnews

Je ne sais pas ce que c'est que ces librairies
Code: [Select]
#include <SPFD5408_Adafruit_GFX.h>    // Bibliothèque graphique principale
#include <SPFD5408_Adafruit_TFTLCD.h> // Bibliothèque spécifique à matériel

mais la librairie GFX d'Adafruit gère l'arrière plan automatiquement lors du tracé des caractères si la valeur bg est définie
Code: [Select]
    setTextColor(uint16_t c),
    setTextColor(uint16_t c, uint16_t bg),
.si on utilise la deuxième méthode de setTextColor() alors l'arrière plan est défini et le tracé d'un caractère efface le fond ET dessine le caractère sans intervention supplémentaire/

pomme-poire


Je ne sais pas ce que c'est que ces librairies
Code: [Select]
#include <SPFD5408_Adafruit_GFX.h>    // Bibliothèque graphique principale
#include <SPFD5408_Adafruit_TFTLCD.h> // Bibliothèque spécifique à matériel

mais la librairie GFX d'Adafruit gère l'arrière plan automatiquement lors du tracé des caractères si la valeur bg est définie
Code: [Select]
    setTextColor(uint16_t c),
    setTextColor(uint16_t c, uint16_t bg),
.si on utilise la deuxième méthode de setTextColor() alors l'arrière plan est défini et le tracé d'un caractère efface le fond ET dessine le caractère sans intervention supplémentaire/
je découvre quelque chose. J'étais sur la même idée que dbrion06, voir recréer une bibliotheque, mais là, tu m'interpelle . Quand j'aurais le temps, je regarderai cette piste. Je fini d'abord avec mon capteur.


Go Up