Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Créer sa propre librairie pour LCD
sylvain54
Avatar de l’utilisateur
Amateur
Amateur
Messages : 194
Âge : 51
Enregistré en : août 2015
Localisation : Dans l'est de la France

#41 Message par sylvain54 » ven. 8 avr. 2016 22:04

Jérémy a écrit :
jeremy pourquoi n'as tu point fait de ASM

:mrgreen:
Pour moultes raisons, mais la principal c'est le temps d'apprentissage et de réalisation, qui est beaucoup trop long . Je ne suis qu'un hobbyistes.... . Même si je ne le cautionne pas, je comprends tout à fait ceux qui font de l'arduino. En quelques jours ont a des résultats sans se prendre la tête et ca , ca suffit a beaucoup de monde.
L'ASM c'est la crême, cherche la petite bête, la perfection .... mais sa demande du temps. De plus je connaissais déjà le BASIC avec les picaxes, et le C est nettement plus proches.


+1

Mais je ne dis pas que je n'y viendrais pas un jour, je regarde et j'apprends ;)

++ Sylvain

Créer sa propre librairie pour LCD
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#42 Message par Jérémy » sam. 9 avr. 2016 23:03

Mais je ne dis pas que je n'y viendrais pas un jour, je regarde et j'apprends


Pareil !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Créer sa propre librairie pour LCD
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#43 Message par Guest » dim. 10 avr. 2016 19:50

Bon et cette librairie, qu'est ce quelle dit ?
Allez jeremy , on est bientôt sortie du tunnel et derrière, un beau tuto .il y a notre ami pooshy qui attend sa lib, s'il est toujours la ?
Si oui,je le salut bien.

bon la suite......

A+

Créer sa propre librairie pour LCD
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#44 Message par Jérémy » dim. 10 avr. 2016 20:31

Ben je pense qu'elle est pas mal.

Effectivement il me manque le switch case comme toi, plutôt que mon "IF" , mais ça reste purement suggestif, pour seulement 2 possibilités je préfère le "IF".

Pourquoi mettre ta donnée dans une variable temporaire ?

Je suis en train de faire le tuto, mais j'ai tourner en rond un moment.... pour savoir de quoi et comment parler de ca
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Créer sa propre librairie pour LCD
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#45 Message par Guest » lun. 11 avr. 2016 13:48

Jérémy a écrit :Effectivement il me manque le switch case comme toi, plutôt que mon "IF" , mais ça reste purement suggestif, pour seulement 2 possibilités je préfère le "IF".

OUi et la est le problème la ds dit :une ligne ou 2 lignes et plus et toi tu ne traites que 2 lignes, si encore tu étais en 1 ligne OK donc il faut traiter les 4 lignes c'est le minimum tu ne crois pas ;) on est ici pour faire une LIBRAIRIE pas une adaptation pour une platine

Code : Tout sélectionner

void DD_RAM_XC8_LCD (unsigned char LIG,unsigned char COL)
{
    RS=0;                               /*mode commande*/
    NOP();
   
switch (LIG)
    {
    case 0:   
    Tempo=128+COL ;                /*ligne 0*/
    Pulse_XC8_LCD();
    __delay_us (50);   
    break;

    case 1:
    Tempo= 192+COL;                /*ligne 1*/
    Pulse_XC8_LCD();
    __delay_us (50); 
    break;

    case 2:
    Tempo= 144+COL;                /*ligne2*/
    Pulse_XC8_LCD();
    __delay_us (50);   
    break;

    default:
    Tempo= 208+ COL;                /*ligne3*/
    Pulse_XC8_LCD();
    __delay_us (50);   
    break;
    }

}



Pourquoi mettre ta donnée dans une variable temporaire ?



Toutes mes routines de ma librairie ne savent pas si elles vont être traité en 4 ou 8bits, donc on les traitent en 8 bits dans la variable Tempo. Un peu comme INT LCD qui au depart est en mode 8 bits
c'est dans le Enable que se fait la différence, et OUI 1 fois ou 2 fois le E=1 et E=0, suivant 4/8 bits et l'on travaille donc sur cette variable Tempo.

Je suis en train de faire le tuto, mais j'ai tourner en rond un moment.... pour savoir de quoi et comment parler de ca

je pense qu'il ne faut pas l’appeler librairie LCD ,mais pour la platine humour!!

A+

Créer sa propre librairie pour LCD
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#46 Message par Guest » lun. 11 avr. 2016 18:45

Tient voila avec 1 ou 4 lignes toujours sans mes tempos ;)

Code : Tout sélectionner

/******************************************************************************/
// position pointeur de la DD_RAM Ligne LIG colonne COL
// home haut gauche -> ligne0 colonne0
void DD_RAM_XC8_LCD (unsigned char LIG,unsigned char COL)
{
    RS=0;                               /*mode commande*/
    NOP();
   
#if((SET) & 8) 
switch (LIG)
    {
    case 0:   
    Tempo=128+COL ;                     /*ligne 0*/
    Pulse_XC8_LCD();
    __delay_us (50);   
    break;

    case 1:
    Tempo= 192+COL;                     /*ligne 1*/
    Pulse_XC8_LCD();
    __delay_us (50); 
    break;

    case 2:
    Tempo= 144+COL;                     /*ligne2*/
    Pulse_XC8_LCD();
    __delay_us (50);   
    break;

    default:
    Tempo= 208+ COL;                    /*ligne3*/
    Pulse_XC8_LCD();
    __delay_us (50);   
    break;
    }
#elif
    Tempo=128+COL ;                     /1 ligne /
    Pulse_XC8_LCD();
    __delay_us (50);   

#endif
}

petite explication
Si le résultat de #if((SET) & 8) est égale a 1 on complile jusqu’à #elif . on est en mode 2 lignes et plus
Si le résultat est égale a zero on complile de #elif a #endif .Tu as fait un tuto sur les if else endif l=,tu dois bien saisir la chose ;) on est en mode 1 ligne

SET a été donnée ici viewtopic.php?f=10&t=223 poste #5 c'est une partie du fichier entête .h

A+

Créer sa propre librairie pour LCD
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#47 Message par Jérémy » mar. 12 avr. 2016 22:20

Bonsoir à tous,

@Maï: je n'ai aps trouvé la possibilité de faire 4 lignes sur la DS, je n'ai donc pas de commande à choisir !

Mais c'est pas grave, le but était d'apprendre a faire une librairie pour ce LCD et pas un truc généraliste, d'autre bien plus costaud l'on déjà fait pour des gens comme moi. Ceux qui apprenne sur le tard !

En tout cas merci bien car j'ai bien appris encore avec tout ceci . Pour me peaufiner il faudrait que j'essaye de faire un caractere spécial et de l'affiché. Encore une longue histoire.

Après mon tuto , et ma prise Bluetooth qui se termine.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Créer sa propre librairie pour LCD
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#48 Message par Guest » mer. 13 avr. 2016 11:46

Jérémy a écrit :Bonsoir à tous,

@Maï: je n'ai aps trouvé la possibilité de faire 4 lignes sur la DS, je n'ai donc pas de commande à choisir !


On peut même faire 4lignes X20 ,TOUJOURS avec les même contrôleurs.
Comme tu fais cela sera tres bien.
je dis ca, mais je suis deja dehors!! :lol:


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 44 invités