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

Affichage de nombre sur LCD avec mikroC



  1. #1
    azannn

    Affichage de nombre sur LCD avec mikroC


    ------

    Bonjour,
    je travailles actuellement sur un projet avec un pic et j'utilise mikroC comme compilateur. J'ai besoin d'afficher des float sur l'écran LCD mais l'écran m'affiche des trucs insensés .. j'ai testé les fonctions WordToStr, FloatToStr .. mais rien. Quelqu'un aurait - il la solution ? Merci

    voici mon code :

    char disp_Kp[], disp_Ki[], disp_Kd[];
    float Kp, Ki, Kd;

    Kp = 1.0;
    Ki = 0.05;
    Kd = 0.01;

    Lcd_Init();
    Lcd_Cmd(_LCD_CLEAR);
    Lcd_Cmd(_LCD_CURSOR_OFF);

    FloatToStr(Kp, disp_Kp);
    Lcd_Out(1, 1, "Kp = ");
    Lcd_Out(1, 5, disp_Kp);

    FloatToStr(Ki, disp_Ki);
    Lcd_Out(1, 9, "Ki = ");
    Lcd_Out(1, 14, disp_Ki);

    FloatToStr(Kd, disp_Kd);
    Lcd_Out(2, 1, "Kd = ");
    Lcd_Out(2, 5, disp_Kd);

    -----

  2. Publicité
  3. #2
    XDamienX007

    Re : Affichage de nombre sur LCD avec mikroC

    Salut!

    Et sans mettre de string, genre faire afficher le string sur le LCD par la fonction LCD_Out ?
    Ou alors formater le texte, mais je sais pas programmer les µC, pas encore

  4. #3
    petardfrancois

    Re : Affichage de nombre sur LCD avec mikroC

    Bonsoir.

    Avant-tout vous devez préciser le type de microcontrôleur de type 16/18FXXXX, ensuite faites nous parvenir votre montage (à moins d'une carte easypic) pour verifier le cablage de l'afficheur (au vu du code cela doit être un 2x16) et enfin, ne devez pas vous déclarer les bit de connexion de l'afficheur (ou écran au plus) au préalable ?
    Par exemple :

    sbit LCD_RS at RB4_bit;
    sbit LCD_EN at RB5_bit;
    sbit LCD_D4 at RB0_bit;
    sbit LCD_D5 at RB1_bit;
    sbit LCD_D6 at RB2_bit;
    sbit LCD_D7 at RB3_bit;

    sbit LCD_RS_Direction at TRISB4_bit;
    sbit LCD_EN_Direction at TRISB5_bit;
    sbit LCD_D4_Direction at TRISB0_bit;
    sbit LCD_D5_Direction at TRISB1_bit;
    sbit LCD_D6_Direction at TRISB2_bit;
    sbit LCD_D7_Direction at TRISB3_bit;

    ...et aussi ne devez vous pas désactiver les comparateurs ( CMCON = 7 pour un 18F4550)

    Tenez nous au courant.

    Cordialement.

  5. #4
    azannn

    Re : Affichage de nombre sur LCD avec mikroC

    @Damien : si si la fonction lcd_out marche bien avec une chaine style "...".
    @petard francois : j'utilise le 16F877A sur un easypic5 .. je me suis souvenu qu en fait le LCD gérait uniquement les ASCII, et ca marche bien pour les int, mais la il faut que je fasse la conversion float ASCII et je maîtrise pas trop tout ce qui est ASCII malheureusement ..
    merci pour vos réponses

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    petardfrancois

    Re : Affichage de nombre sur LCD avec mikroC

    Le fait que votre afficheur (chipset HD44780 ou équivalent) ne "gère que l'ASCII" n’empêche nullement d'afficher des valeurs à virgules et les variables de déclarées de bit à float sont très bien acceptées.

    Regardez par là : http://www.cuteminds.com/index.php/e.../122-adctovolt

    C'est un 4x20, mais le code devrait certainement vous aider....

    bonne soirée.

  9. #6
    petardfrancois

    Re : Affichage de nombre sur LCD avec mikroC

    Oups ! Ce code ne vous servira pas, il n'utilise pas de variable de "taille" float.... justement c'est l'inverse pour économiser de la mémoire...

    Vous devriez poster votre requête sur le forum de MikroElectronica...

    Utilisant Mikrobasic, et un petit bouquin de Mr Tavernier (qui me sers de mémo) ... je n'ai jamais eu de soucis de ce type

    Exemple en MB (de tête) :

    Dim x as float
    Dim Text as Char[20]

    main :

    Lcd_init()
    lcd_cmd(_lcd_clear)
    Lcd_cmd(_cursor_off)

    X= .1/8
    FloatToStr (X, Text)
    Lcd_out (1,1,Text)

    End.

  10. Publicité
  11. #7
    paolo123

    Re : Affichage de nombre sur LCD avec mikroC

    essaye ca

    char disp_Kp[], disp_Ki[], disp_Kd[];
    char *Kp="1.0";
    char *Ki="0.05";
    char *kd="0.01";



    Lcd_Init();
    Lcd_Cmd(_LCD_CLEAR);
    Lcd_Cmd(_LCD_CURSOR_OFF);

    FloatToStr(Kp, disp_Kp);
    Lcd_Out(1, 1, "Kp = ");
    Lcd_Out(1, 5, disp_Kp);

    FloatToStr(Ki, disp_Ki);
    Lcd_Out(1, 9, "Ki = ");
    Lcd_Out(1, 14, disp_Ki);

    FloatToStr(Kd, disp_Kd);
    Lcd_Out(2, 1, "Kd = ");
    Lcd_Out(2, 5, disp_Kd);

  12. #8
    azannn

    Re : Affichage de nombre sur LCD avec mikroC

    Merci paolo ca marche nickel merci a tous pour votre aide!

Discussions similaires

  1. MikroC for Pic et programme C avec LCD
    Par daryl75 dans le forum Électronique
    Réponses: 39
    Dernier message: 07/02/2013, 18h05
  2. Programmation sur Mikroc compiler d'un afficheur LCD
    Par ELO13 dans le forum Électronique
    Réponses: 11
    Dernier message: 22/04/2012, 21h02
  3. Affichage lcd avec un p18f4550
    Par Emra dans le forum Électronique
    Réponses: 6
    Dernier message: 06/05/2011, 10h09
  4. affichage LCD avec pic 16F84
    Par spray_kim dans le forum Électronique
    Réponses: 3
    Dernier message: 26/01/2010, 18h37
  5. programation LCD 4bits avec mikroC
    Par Bernibernouille dans le forum Électronique
    Réponses: 1
    Dernier message: 24/10/2009, 12h43
Découvrez nos comparatifs produits sur l'informatique et les technologies.