AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif



  1. #1
    invite6e9a7dd2

    AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif


    ------

    Bonjour a tous
    J’ai besoin de votre aide pour afficher 12 bit signés sur un 7 segments. L'affichage sur 7 segments avec 4 afficheurs je sais faire mais que avec des nombres entiers et non signé.

    Maintenant Je voudrais afficher sur les 4 afficheurs ce format la : S00.0 avec S signe + ou – .

    Je vous met en PJ plus de précision sur les données que j’aimerai convertir

    Merci

    -----
    Images attachées Images attachées  

  2. #2
    invite6e9a7dd2

    Re : AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif

    Par exemple, j'obtiens 0001 1001 0001 dans mon vecteur de 12 bits, je dois donc afficher +25.0 de la façon :
    Afficheur HEX0 : +
    Afficheur HEX1 : 2
    Afficheur HEX2 : 5
    Afficheur HEX3 : 0

    La partis affichage je l'ai fait avec 4 entrée : afficheur 1 à 4 mais c'est surtout la conversion qui me bloque pour afficher la bonne valeur.

  3. #3
    Jack
    Modérateur

    Re : AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif

    Les valeurs sont codées en complément à 2, donc bit de signe= 1 pour un nombre négatif et = 0 pour un positif. Déjà un point de réglé.

    Pour la valeur absolue, si le nombre est positif, on ne change rien et si le nombre est négatif, on calcule son complément à 2.

    A+

  4. #4
    invite6e9a7dd2

    Re : AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif

    et pour la parti après la virgule? comment je gères ça? je voulais multiplier par mille mais ça devient compliquer!! après je voulais écrire toutes les valeurs possibles un par un mais ça devient très fastidieux.

  5. A voir en vidéo sur Futura
  6. #5
    invite6e9a7dd2

    Re : AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif

    entity gerer_12bitTempData is
    Port ( tempData : in STD_LOGIC_VECTOR (11 downto 0);
    dataValide : in STD_LOGIC;
    signe : out STD_LOGIC_VECTOR (3 downto 0);
    virgule : out STD_LOGIC;
    unite : out STD_LOGIC;
    dizaine : out STD_LOGIC;
    decimal : out STD_LOGIC);
    end gerer_12bitTempData;

    architecture Behavioral of gerer_12bitTempData is

    -- variable pour lecture de temperature sur pmodTmp
    --------------------------------------------------------------
    signal dataTemperatureTemp : STD_LOGIC_VECTOR (11 downto 0) :="000000000000";
    signal signeTemp : STD_LOGIC := '0';
    signal x : STD_LOGIC_VECTOR ( 7 downto -3);
    signal negatifComplementTemp : STD_LOGIC_VECTOR ( 7 downto 0);
    --------------------------------------------------------------

    begin

    process (dataValide)
    begin

    dataTemperatureTemp <= tempData;
    signeTemp <= dataTemperatureTemp (11);

    --------------------------------------------------------------
    -- traiter signe + mise en place du complement
    --------------------------------------------------------------

    if signeTemp = '1' then

    signe <= "1110"; -- defini dans affichage sur 7 seg

    else
    if signeTemp = '0' then

    signe <= "1111"; -- defini dans affichage sur 7 seg
    dataTemperatureTemp <= not(dataTemperatureTemp)+1; -- complement
    end if;

    end if;

    --------------------------------------------------------------
    -- activer virgule toujours au mm endroit
    --------------------------------------------------------------
    virgule <= '1'; -- envoyer sur pt1 afficheur numero 2 partant de droite

    --------------------------------------------------------------
    -- conversion pour les 3 afficheur de droites
    --------------------------------------------------------------
    end process;

    end Behavioral;




    Voici le début de mon programme reste plus qu'a traité les 12 bits de donné pour les 3 autres afficheur je pensai d'abord traiter la parti entier pour la parti décimal mais c'est la ou je bloque

  7. #6
    bobflux

    Re : AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif

    Ton code 12 bits, c'est juste la température en degrés multipliée par 16...

    Un code d'exemple en python, tu peux transposer :

    Code:
    def to_bcd(x):
        chiffres = ""
        while x:
            chiffres = str(x%10) + chiffres
            x /= 10
        return chiffres
            
    
    for real_temp in -55, -25.5, -10.125, -0.5, 0, 0.5, 10.125, 25.5, 125   :
        # adc : int16_t
        adc = int(real_temp*16) & 0xFFF
    
        print "\nreal_temp : %f\tadc : 0x%x" % (real_temp, adc)
        
        # signe
        if adc & 0x800:
            signe = -1
            adc = (-adc) & 0x7FF    # adc devient positif
        else:
            signe = 1
        
        # mode normal : fixpoint en 32 bits
        decimal = (int32_t(adc) * (10 * 65536 / 16)) >> 16
        
        # apres normalement on utilise un sprintf !!!
        print "signe %d valeur %s" % (signe, to_bcd( decimal ))
        
        # mode neuneu (8 bits)
        fraction = ((adc & 0xF) * 10) >> 4    
        entier   = adc >> 4
    
        print "signe %d valeur %s.%d" % (signe, to_bcd(entier),fraction)
    exemple de sortie :

    real_temp : -55.000000 adc : 0xc90
    signe -1 valeur 550
    signe -1 valeur 55.0

  8. #7
    mag1

    Re : AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif

    Bonjour,

    Si il s'agit de décoder un DS18B20, pourquoi ne pas le dire.
    Pourquoi ne pas dire le µC utilisé et le langage, ASM, C, basic....?
    Aide ceux qui peuvent t'aider

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  9. #8
    Jack
    Modérateur

    Re : AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif

    Citation Envoyé par mag1 Voir le message
    Bonjour,

    Si il s'agit de décoder un DS18B20, pourquoi ne pas le dire.
    Pourquoi ne pas dire le µC utilisé et le langage, ASM, C, basic....?
    Aide ceux qui peuvent t'aider

    MM
    Visiblement, c'est du VHDL, donc pas de µC. Ca aurait été intéressant de le savoir dès le départ.

  10. #9
    mag1

    Re : AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif

    Si j'avais lu #5, j'aurais pas posé la question. Et comme je ne connais rien en VHDL, je n'en poserai pas d'autres.

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  11. #10
    bobflux

    Re : AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif

    Mille sabords, t'as posté que c'était du VHDL pendant que j'étais en train d'écrire mon baratin.

    Tu pouvais pas préciser ?

    Tape "binary to bcd encoder vhdl" dans google, il y a 2 milliards de réponses.

  12. #11
    indri

    Re : AIDE : CONVERSION DE 12 BIT signé avec 4 bit de poids faible exposant negatif

    Moi je ferais ca (si j'ai bien compris ton truc):
    -tester le signe
    -conversion binaire-bcd (en fouillant un peu google tu dois pouvoir trouver un code tout fait)
    -"conversion" groupe de bit vers 7seg (juste un " case")

    bonne prog

    edit: merde grillé!
    Là où va le vent...

Discussions similaires

  1. croissance et signe (exposant et logarithme)
    Par invite79e760d4 dans le forum Mathématiques du collège et du lycée
    Réponses: 7
    Dernier message: 27/11/2010, 19h59
  2. Registre série inverseur octets poids fort/faible
    Par invitea88e6ae4 dans le forum Électronique
    Réponses: 8
    Dernier message: 16/02/2010, 13h57
  3. acces au 8 bit de poids fort avec MCC18
    Par invite4d22160b dans le forum Électronique
    Réponses: 2
    Dernier message: 12/02/2008, 14h24
  4. signe du moment du poids DU PENDULE PESANT
    Par invite05219e51 dans le forum Physique
    Réponses: 4
    Dernier message: 02/02/2006, 12h08
  5. récupération poids fort et poids faible d'une valeur déciaml
    Par invite5ef05993 dans le forum Électronique
    Réponses: 4
    Dernier message: 18/01/2006, 23h14
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...