Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

printf pour LCD



  1. #1
    Jack
    Modérateur

    printf pour LCD


    ------

    salut,

    a tout hasard, quelqu'un utiliserait-il l'environnement de metrowerk pour µcontrôleurs motorola, et en particulier son compilateur C?

    J'ai quelques problèmes à redéfinir la fonction printf() afin de l'appliquer à un afficheur LCD.

    Je l'avais déjà fait il y a quelques temps avec un autre compilateur pour 68HC11 et c'était tout simple: il suffisait de réécrire en assembleur la fonction getchar() qui permettait de gérer l'envoi d'un caractère au LCD.

    Mais avec le nouveau compliateur, ça a l'air d'être une usine à gaz.

    Si quelqu'un pouvait m'éviter de longues heures de galère, ça serait sympa.

    Merci et a+

    -----

  2. Publicité
  3. #2
    JPR

    Re : printf pour LCD

    Bonjour,

    La fonction "getchar", comme son nom l'indique, récupère un caractère tandis que "putchar" envoie un caractère : c'est plutôt elle qu'il faudrait utiliser.
    Mais le mieux, si cela existe, est d'utiliser la fonction "outb" ou "outportb" qui permet d'envoyer un octet sur un port I/O précis, ce qui semble tout indiqué pour gérer un afficheur LCD.
    Avec cette fonction, on prépare un caractère (unsigned char) en positionnant les bits un par un (par calcul ou par décalages) et "outb" envoie cet octet tel quel sur le port indiqué sans rien ajouter.
    En général, les microcontrôleurs sont assez riches en ports I/O et en instructions pour les gérer.

  4. #3
    Jack
    Modérateur

    Re : printf pour LCD

    merci pour ta réponse,

    en effet, petite erreur de ma part c'est bien de putchar() dont je voulais parler.

    En revanche, je ne comprends pas pourquoi tu veux envoyer les caractères bit à bit, vu que le LCD se commande en envoyant des données en parallèle.

    Pour moi, le problème n'est pas d'envoyer un octet sur le port, mais de réutiliser la fonction printf() en raison de sa puissance au niveau du formatage des données (décimal ou hexadécimal, alignement des données, nombre de décimales, etc.).

    En attendant, j'ai trouvé une solution intermédiare avec sprintf().

    A+

  5. #4
    Tam

    Re : printf pour LCD

    Citation Envoyé par Jack
    ... Je l'avais déjà fait il y a quelques temps avec un autre compilateur pour 68HC11 et c'était tout simple: il suffisait de réécrire en assembleur la fonction getchar() qui permettait de gérer l'envoi d'un caractère au LCD.

    Mais avec le nouveau compliateur, ça a l'air d'être une usine à gaz.

    Si quelqu'un pouvait m'éviter de longues heures de galère, ça serait sympa.

    Merci et a+
    J'aurais suivi la mm démarche. Mais avant as-tu cherché sur le net si y'a pas les "include" qui vont bien ?
    Sur pic, j'ai rarement besoin d'écrire ce genre de truc, y'a toujours qlqu'un qui l'a fait.

  6. A voir en vidéo sur Futura

Discussions similaires

  1. Controlleur pour dalle lcd
    Par cl56670 dans le forum Électronique
    Réponses: 0
    Dernier message: 30/09/2007, 11h15
  2. Faire un printf() dans Mplab en mode ICD2
    Par The Viking dans le forum Électronique
    Réponses: 2
    Dernier message: 10/05/2007, 15h22
  3. lcd pour debutant
    Par powerdark dans le forum Électronique
    Réponses: 42
    Dernier message: 24/03/2007, 09h29
  4. alimenter un inverter LCD pour portable
    Par popup dans le forum Matériel - Hardware
    Réponses: 2
    Dernier message: 24/06/2006, 16h31
  5. Programme pour LCD 44780...
    Par Bullrap dans le forum Électronique
    Réponses: 3
    Dernier message: 15/02/2005, 14h08
Découvrez nos comparatifs produits sur l'informatique et les technologies.