Programmation PIC18f2525
Résolu
Manue971
-
Nabla's Messages postés 18203 Date d'inscription Statut Contributeur Dernière intervention -
Nabla's Messages postés 18203 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Programmation PIC18f2525
- Application de programmation - Guide
- Programmation envoi sms - Guide
- Programmation vb - Télécharger - Langages
- Programmation binaire - Guide
- Programmation télécommande porte de garage brico depot - Forum Matériel & Système
4 réponses
J'avais fait un vieux code pour ca en VB... le principe est le suivant (dsl, je peux pas tester le code ici):
comme tu le vois, j'y vais en gros bourin, au leiu de passer la ligne, je passe la ligne avec un décalage d'index... ca crain rien du tout, par contre le compilo risque de te mettre un warning, ou tu risques d'avoir à faire un transtypage. Si il y a des modifications en temps réel de la taille de la ligne de texte, il faudra améliorer un peu le code ....
char texte = "voici le texte a faire defiler car il sort de l'ecran"; unsigned short index. unsigned short taille_texte = strlen(texte); while (true) { for (index = 0; index < taille_texte; index++) EcritUneLigne_LCD_MODE_4_BITS(texte + index); }
comme tu le vois, j'y vais en gros bourin, au leiu de passer la ligne, je passe la ligne avec un décalage d'index... ca crain rien du tout, par contre le compilo risque de te mettre un warning, ou tu risques d'avoir à faire un transtypage. Si il y a des modifications en temps réel de la taille de la ligne de texte, il faudra améliorer un peu le code ....
2 solutions: soit tu t'arranges pour que la taille de ta chaine ne change pas (genre tu affiches toujours tes angles dans le meme format: 030.2° => dans ce cas je pense qu'une réécriture de la chaine en live est possible ... (au pire a la plasse du zero tu peux mettre des espaces, si besoin tu rajoutes un mutex lors du changement pour pas avoir de "bavure"), soit tu regénères la chaine uen fois que la ligne a fini de défiler...
avec mon code, le texte doit etre totalement sorti de l'écran pour commenser à se réafficher. On peut faire un meilleur défilement, genre la phrase qui se répète à l'infini sans se retrouver avec un écran quasi vide à aucun moment, mais ca pompera plus de mémoire, et necessitera plus d'opérations... a toi de voir si tu as du rab au niveau de la mémoire programme et de la RAM ... (il faudrai prévoir un 2° buffer ayant la taille de l'écran pour faire simple. Avec les fonctions que j'utilisais à l'époque (home made) => pas besoin de 2° mémoire car je n'écrivais pas ligne par ligne... mais bon, t'es peut être pas à 50 octets pret !
avec mon code, le texte doit etre totalement sorti de l'écran pour commenser à se réafficher. On peut faire un meilleur défilement, genre la phrase qui se répète à l'infini sans se retrouver avec un écran quasi vide à aucun moment, mais ca pompera plus de mémoire, et necessitera plus d'opérations... a toi de voir si tu as du rab au niveau de la mémoire programme et de la RAM ... (il faudrai prévoir un 2° buffer ayant la taille de l'écran pour faire simple. Avec les fonctions que j'utilisais à l'époque (home made) => pas besoin de 2° mémoire car je n'écrivais pas ligne par ligne... mais bon, t'es peut être pas à 50 octets pret !
&texte[index];