Conversion A/N : Utilisation de ADRESH+ADRESL - Page 2
Répondre à la discussion
Page 2 sur 3 PremièrePremière 2 DernièreDernière
Affichage des résultats 31 à 60 sur 89

Conversion A/N : Utilisation de ADRESH+ADRESL



  1. #31
    invite74b5b8f7

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL


    ------

    Non, faut trouver la source de l´erreur...
    Je regarderais ton sift ce soir si j´ai du temps parceque là je suis au boulot

    -----

  2. #32
    invite3c35244f

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Je te remercie...
    je recherche de mon coté... et je vous tiens au courant
    Nicolas

  3. #33
    Seb.26

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Citation Envoyé par lil-vince Voir le message
    Oui donc :


    c´est exactement pareil que:
    unsigned short toto = (unsigned short)(ADRESH*256+ADRESL);

    (1 décalage à gauche = multiplication par 2 donc 8 décalages = multiplication par 2^8= 256)
    Si ton compilo est malin oui ... sinon il fera une multiplication ... mais c'est pour pinailler ...

    D'ailleur, tu m'as dit que :
    Citation Envoyé par Seb.26
    T'es sûr que c'est ADRESH*256+ADRESL qu'il faut faire ??? ... c'est pas plutôt (ADRESH<<2) | (ADRESL&0x03) ...
    Citation Envoyé par lil-vince
    Citation:
    c'est pas plutôt (ADRESH<<2) | (ADRESL&0x03)
    Pour moi c´est la même chose...
    Ce à quoi je t'ai répondu que c'etait pas pareil ...

    Et entre temps, j'ai vu l'info sur le ADFM ... donc RAS ...

    Et c'est bien ((unsigned short)ADRESH)<<8 + ADRESL qu'il faut faire ...

    Son problème est donc ailleur ...

  4. #34
    Seb.26

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    PS: il manque des ( ) dans la ligne ((unsigned short)ADRESH)<<8 + ADRESL

    c'est (((unsigned short)ADRESH)<<8) + ADRESL qu'il faut mettre ...

  5. #35
    invite3c35244f

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Bon, je suis passé j'ai essayé ça:
    Code:
    Van1=(((unsigned short)ADRESH)<<8) + ADRESL;
    Van1=(float)Van1*q;
    et avec comme test:

    Code:
    if(Van1>2.5)
    	{
    	RA3=0;
    	RA4=0;
    	RA5=0;
    	BUZZER=1;
    	}
    
    else
    	{
    	RA3=1;
    	RA4=1;
    	RA5=1;
    	BUZZER=0;
    	}
    Avec comme tension en AN1 une tension qui varie entre 0 et 5 V, je suis reparti sur un truc tout simple...
    Et la encore ça ne marche pas...
    Bon je vais regarder ce qui cloche...
    Encore merci
    Nicolas

  6. #36
    Seb.26

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Citation Envoyé par jorg1n Voir le message
    Bon, je suis passé j'ai essayé ça:
    Code:
    Van1=(((unsigned short)ADRESH)<<8) + ADRESL;
    Van1=(float)Van1*q;
    et avec comme test:

    Code:
    if(Van1>2.5)
    	{
    	RA3=0;
    	RA4=0;
    	RA5=0;
    	BUZZER=1;
    	}
    
    else
    	{
    	RA3=1;
    	RA4=1;
    	RA5=1;
    	BUZZER=0;
    	}
    Avec comme tension en AN1 une tension qui varie entre 0 et 5 V, je suis reparti sur un truc tout simple...
    Et la encore ça ne marche pas...
    Bon je vais regarder ce qui cloche...
    Encore merci
    Nicolas
    Si ça, ça ne marche pas ... regarde du coté de ton CAN ... il doit pas être activé ou un mauvais canal selectionné ... ou autre ...

  7. #37
    invite5637435c

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Salut,

    j'ai la flemme de tout relire mais en pourquoi ne fais-tu pas une attribution de valeur du résultat de conversion sur 10 bits avec 4 leds?
    Tu vas me dire pourquoi 4 leds?

    J'utilise ça quand je veux visualiser un résultat de conversion (je dispose toujours sur mes cartes proto de 4 leds qui me servent à débugger).
    Le principe est de faire afficher en 3 temps les 10 bits de la conversion:

    la 1ere série de 4 leds me donne le résultat des bits A0/A1/A2/A3
    puis A4/A5/A6/A7 et enfin A8/A9.

    Tu prévois une base de temps de 1s pour avoir le temps de visualiser le code et un BP pour déclencher la procédure de récupération des registres.

    C'est 4 leds peuvent servir à tout type de surveillance (clignotement, accusé de réception d'une info, passage dans une boucle,....)

    @+

  8. #38
    invite74b5b8f7

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    bonsoir,
    toto = ((unsigned short)ADRESH)<<8 + ADRESL;
    T´as bien déclaré toto en "int" ?

    Sinon, même réponse que Seb.26, plonge toi dans ta doc pour vérifier que t´ais pas oublié une initialisation....
    Ou commence par le test que te propose HULK, c´est une bonne idée pour être sur que ca vient du CAN et non pas de ton prog.

    Si ton compilo est malin oui ... sinon il fera une multiplication
    C´est une multiplication justement !?

    Pour Seb.26:
    ... mais c'est pour pinailler ...
    Tu le veux ton cable?
    (j´ais demandé un devis aujourd´hui, faudra que je demande à mon patron si c´est possible)

  9. #39
    invite3c35244f

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Bonjour,
    bon ce matin j'étais persuadé que ça allait marché...et bein....NON!!
    Bon voila mon programme:
    Code:
    //fichier de declaration des registres internes du microcontroleur
    #include <p18f4525.h>
    #include <delays.h>
    #include <adc.h>
    #include <stdlib.h>
    
    //Déclaration des PORTXbits.RXX utilisés
    #define BUZZER PORTBbits.RB3
    #define RA5 PORTAbits.RA5 
    #define RA4 PORTAbits.RA4 
    #define RA3 PORTAbits.RA3
    
    //Déclaration des quantum
    #define q 4.8900e-3	// quantum pour un CAN 10bits 0v-5v
    
    //Configuration Bits
    #pragma config OSC = HS			//OSCILLATOR
    #pragma const config FCMENB = OFF	//Fail Safe Clock Monitor Disabled
    #pragma const config IESOB = OFF	//Internal External Osc. Switch Disabled
    #pragma config PWRT = OFF		//Power Up Timer Disabled
    #pragma const config BOR = BOHW 	//Brown Out Reset Enabled in HW, SBOREN disabled
    #pragma const config BORV = 20		//Brown Out Voltage : 2.0V
    #pragma config WDT = OFF		//WATCHDOG HW Disabled - SW Controlled
    #pragma config DEBUG = OFF		//DEBUG Disabled
    #pragma config LVP = OFF		//Low Voltage Programming Disabled
    
    //Sous programmes
    void init_uc(void);
    void conv_AD_VBatt(void);
    void calculVbatt(void);
    
    //Déclarations des variables
    float Vbatt=0.00;
    float Van1=0.00;
    int toto;
    /***************************************************************************
    *********************Programme Principal************************************
    ***************************************************************************/
    void main (void)
    {
    init_uc();				//Appel SP Initialisation du microcontroleur
    
    while(1)
    {
    conv_AD_VBatt();
    
    if(Van1<2.5)
    	{
    	RA3=0;
    	RA4=0;
    	RA5=0;
    	BUZZER=0;
    	}
    
    if(Van1>=2.5)
    	{
    	RA3=1;
    	RA4=1;
    	RA5=1;
    	BUZZER=0;
    	}
    
    }//Fin While(1)
    }//Fin Programme Principal
    
    /***************************************************************************
    Nom   : void init_uc(void)
    Role  : Configuration et initialisation des Ports E/S
    ----------------------------------------------------------------------------
    Contraintes           : Aucune
    Donnees en entree     : Aucune
    Donnees en sortie     : Aucune
    Donnees glob. modif.  : Aucune
    *****************************************************************************/
    void init_uc(void)
    {
     ADCON1=0x0D;					// Configuration AN0 AN1 en analogique--reste en numérique
     TRISA=0x03;					// PORTA en sortie sauf RA0 RA1
     TRISB=0xC7;					// RB0->RB2 & RB6-RB7 en entrée -- reste en sortie
     TRISC=0x00;					// PORTC en sortie
     TRISD=0x00;					// PORTD en sortie
     TRISE=0x00;					// PORTE en sortie
    
     PORTA=0x00;					//
     PORTB=0x00;					///
     PORTC=0x00;					////Initialisation à 0 des Ports
     PORTD=0x00; 					///
     PORTE=0x00;					//
    }
    
    /***************************************************************************
    Nom   : void conv_AD_VBatt(void)
    Role  : 
    ----------------------------------------------------------------------------
    Contraintes           : Aucune
    Donnees en entree     : Aucune
    Donnees en sortie     : Aucune
    Donnees glob. modif.  : Aucune
    *****************************************************************************/
    void conv_AD_VBatt(void)
    {
    ADCON0=0x05;			// Sélection AN1 / CAN ON. 
    ADCON2bits.ADFM=1;			//justification a droite
    ADCON0bits.GO_DONE=1;		// Start OC
    while(ADCON0bits.GO_DONE);	// attend EOC
    ADCON0bits.GO_DONE=0;		// End OC
    calculVbatt();			// Calcul de la tension batterie
    ADCON0=0x00;			// CAN OFF. 	
    }
    
    /***************************************************************************
    Nom   : void calculVbatt(void)
    Role  : Calcul de la température suite à la convAD
    ----------------------------------------------------------------------------
    Contraintes           : Aucune
    Donnees en entree     : Aucune
    Donnees en sortie     : Aucune
    Donnees glob. modif.  : Aucune
    *****************************************************************************/
    void calculVbatt(void)
    {
    toto=(((unsigned short)ADRESH)<<8) + ADRESL;
    Van1=(float)toto*q;
    //Van1 =(float)(ADRESH<<2 | ADRESL&0x03);
    //Van1 = (float)ADRESH;
    //Van1 = Van1*256 + (float)ADRESL;
    //Van1 = Van1*q;			// calcul la tension sur AN1
    //Tbatt=(float)(Van0*100-273.15);		// Calcul de la température
    }
    Et apres cela...pour une tension supérieure 1,72V les DELs sont éteintes et donc lorsque la tension est inférieur, elle sont allumées...allez savoir pourquoi... et ça pour q=4.89e-3 car pour 4.88e-3, elles ne s'allument jamais..et pour q=4.9e-3, les LEDs sont éteintes lorsque la tension est comprise entre 1,72 et 2,1V sinon elles s'allument....
    Bon je vais essayé autre chose!!!
    Bonne journée a vous
    Encore merci
    Nicolas

  10. #40
    invite3c35244f

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Bon je viens de modifier la valeur de ADCON2bits.ADFM, je l'ai mis a 0...normalement je pensai que ça resemblerai a rien....mais non pas du tout ça marche d'où les drole de résultats trouvé tout a lheure...ça avance...
    reste a trouver pourquoi j'ai un décalage, car pour le seuil 2,5 le changement d'état se fait 2,03V en entrée sur AN1...
    Et surtout:

    ADFM: A/D Result Format Select bit
    1 = Right justified
    0 = Left justified

    Je serai donc en justification à gauche??la je ne comprend pas ...je vais y réfléchir...
    Et peut on m'expliquer cette ligne SVP:
    toto=(((unsigned short)ADRESH)<<8) + ADRESL;

    Merci

  11. #41
    invite5637435c

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    void conv_AD_VBatt(void)
    {
    ADCON0=0x05; // Sélection AN1 / CAN ON.
    ADCON2bits.ADFM=1; //justification a droite
    ADCON0bits.GO_DONE=1; // Start OC
    while(ADCON0bits.GO_DONE); // attend EOC
    ADCON0bits.GO_DONE=0; // End OC cette ligne est inutile ADCON0 est mis à 0 quand la conversion est finie
    calculVbatt(); // Calcul de la tension batterie
    ADCON0=0x00; // CAN OFF.
    }

    il faut introduire une petite tempo de l'ordre de 25µs après avoir activé le convertisseur et avant de lancer une conversion.
    Tu ne précise pas non plus au convertisseur la fréquence de conversion ( bits ADCS1:ADCS0)

  12. #42
    invite5637435c

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    void calculVbatt(void)
    {
    toto=(((unsigned short)ADRESH)<<8) + ADRESL;
    Van1=(float)toto*q;
    //Van1 =(float)(ADRESH<<2 | ADRESL&0x03);
    //Van1 = (float)ADRESH;
    //Van1 = Van1*256 + (float)ADRESL;
    //Van1 = Van1*q; // calcul la tension sur AN1
    //Tbatt=(float)(Van0*100-273.15); // Calcul de la température
    }

    Pourquoi ne pas faire:
    Van1=ADRESH;
    Van1<<=8;
    Van1|=ADRESL; // le résultat de la conversion est contenu dans Van1

    @+

  13. #43
    invite74b5b8f7

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    ADFM: A/D Result Format Select bit
    1 = Right justified
    0 = Left justified

    Je serai donc en justification à gauche??la je ne comprend pas ...je vais y réfléchir...
    Bizarre, à mon avis c´est peut-être un hasard si ca marche comme ca...

    Et peut on m'expliquer cette ligne SVP:
    toto=(((unsigned short)ADRESH)<<8) + ADRESL;
    Tu décales les 2 bits de ADRESH (= 000000XX ) pour avoir XX 00000000
    et tu y ajoute ADRESL (ca remplace les 8 zeros par ADRESL) du coup tu as la forme XX XXXXXXXX (les 8 derniers bits sont ADRESL et les 2 premiers sont ceux qui étaient contenus dans ADRESH)

    D´ailleurs, je me demandais si ca marche, car s´il fait le décalage dans ADRESH qui ne fait que 8 bits, il sort les bits utiles et tu as toujours 0 dans ADRESH...

    Tu as essayé de rester en entiers pour tes comparaisons?

    Sinon, un décalage (offset) peut s´expliquer par la qualité du convertisseur et du capteur, mais 10% ca fait beaucoup!

  14. #44
    invite74b5b8f7

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    D´ailleurs, je me demandais si ca marche, car s´il fait le décalage dans ADRESH qui ne fait que 8 bits, il sort les bits utiles et tu as toujours 0 dans ADRESH...
    Donc essaye ce que t´as proposé HULK pendant que j´écrivais:
    Pourquoi ne pas faire:
    Van1=ADRESH;
    Van1<<=8;
    Van1|=ADRESL; // le résultat de la conversion est contenu dans Van1
    avec Van1 = entier et tu fais un comparaison avec des entiers...(et perso je remettrasi la jusification à droite)

    PS: Je ne dit pas que ce que je te dis est ce qu´il faut faire, mais c´est ce que je ferais (décomposer et partir du plus simple -> générateeur de tension en entrée du convertisseur, travail en entier et même pourquoi pas des tests directement sur ADRESH et ADRESL, surtout sur ADRESH pour vérifier ta justification à droite)

  15. #45
    invite74b5b8f7

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    D´ailleurs tu devrais essayer de faire:

    int x;
    x = ADRESH;

    if (x == 1) // seuil environ 1,25V
    {
    RA3 = 1;
    RA4 = 0;
    RA5 = 0;
    }
    else if (x == 2) // seuil environ 2,5V
    {
    RA3 = 0;
    RA4 = 1;
    RA5 = 0;
    }
    else if (x == 3) // seuil environ 3, 75V
    {
    RA3 = 1;
    RA4 = 1;
    RA5 = 0;
    }
    else // inferieur à 1,25V
    {
    RA3 = 0;
    RA4 = 0;
    RA5 = 0;
    }

    Si ca ne s´allume pas aux bons endroit, c´est que la jhustification n´est pas bonne ou un autre problème dans le convertisseur...
    D´ailleurs, c´est un peu le principe que te proposais HULK la première fois

    Bon courage (je sais ce que c´est de se prendre la tête pendant plusieurs jours!)

  16. #46
    invite3c35244f

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Bon je viens d'essayer ce que vous m'avez proposé:
    -justification a droite
    -Calcul du résultat:
    Van1=ADRESH;
    Van1<<=8;
    Van1|=ADRESL;
    -et test

    et la j'ai RA4 qui est est égale à 1 pour une tension AN1 de 0 à 1,5V
    et RA3 à 1 pour AN1 allant de 1,5V à 5....

  17. #47
    invite74b5b8f7

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    int x;
    x = ADRESH;
    Et t´as essayé mon dernier post?(utilise seulement ADRESH)

    Et rajoute à la place de :
    else // inferieur à 1,25V
    {
    RA3 = 0;
    RA4 = 0;
    RA5 = 0;
    }
    fait :
    else if (x == 0)// inferieur à 1,25V
    {
    RA3 = 0;
    RA4 = 0;
    RA5 = 0;
    }
    else
    {
    RA3 = 1;
    RA4 = 1;
    RA5 = 1;
    }

    Bon, déolé, mais j´éteint mon PC parsque sinon je bosse pas (de l´électronique sur un forum ou des cours, c´est pas facile...), je reviens surement vers midi

    Mais je pense que tu devrais tester ca(pour comprendre le contenu d´ADREH), et si ca ne marche pas correctement, change la justification, etc...
    @+

  18. #48
    Seb.26

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Fais marcher ton code en 8b déjà ... et comme proposé par HULK, visualise les bits de poids fort sur des led ... ...

    T'as pas un debuggeur ???

  19. #49
    invite3c35244f

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Bon, l'erreur était au point de vue du temps, HULK ma mis sur la voie...
    j'ai donc remis mon nez dans la documentation du convertisseur AN du 18F et j'obtiens comme convertion:
    Code:
    ADCON0=0x05;				// Sélection AN1/ADON = 1. 
    ADCON2=0x95;				// Justification à droite/Tps d'acquisition=4Tad/Horloge de conversion=16Tosc
    ADCON0bits.GO_DONE=1;		// Start Conversion A/N
    while(ADCON0bits.GO_DONE);	// attend EOC
    ADCON0bits.GO_DONE=0;		// Fin Conversion A/N
    Donc je m'explique:
    -ADCON0 -> sélection de l'entrée analogique / ADON=1 pour la mise en fonctionnement du conAD
    -ADCON2 -> Justification à droite donc ADFM=1, et c'est la que ça change, pour les bits ACQT2:ACQT0, j'ai mis '010'=4Tad pour lasser un temps entre le démarrage du CAN et le début de la conversion et ensuite pour le choix de l'horloge de conversion, j'ai mis pour les bits ADCS2:ADCS0, '101'=Fosc16.
    Et on connais la suite après...
    et donc au final:
    avec comme test:
    Code:
    x = ADRESH;
    
    if (x == 1) // seuil environ 1,25V
    {
    RA3 = 1;
    RA4 = 0;
    RA5 = 0;
    }
    else if (x == 2) // seuil environ 2,5V
    {
    RA3 = 0;
    RA4 = 1;
    RA5 = 0;
    }
    else if (x == 3) // seuil environ 3, 75V
    {
    RA3 = 1;
    RA4 = 1;
    RA5 = 0;
    }
    
    else if (x == 0)// inferieur à 1,25V
    {
    RA3 = 0;
    RA4 = 0;
    RA5 = 0;
    }
    else
    {
    RA3 = 1;
    RA4 = 1;
    RA5 = 1;
    }
    j'obtiens:
    RA3=RA4=RA5=0 pour an1 allant de 0v à 1,244V
    RA3=1 et RA4=RA5=0 pour an1 allant de 1,244V à 2,48V
    RA4=1 et RA3=RA5=0 pour an1 allant de 2,48V à 3,72V
    et donc RA3=RA4=1 et RA5=0 pour An1 allant de 3,72 à 5V

    Donc voili voila, et donc la on a bien la justification a droite, ensuite faut voir pour le décalage ....
    Encore merci

  20. #50
    invite3c35244f

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    T'as pas un debuggeur ???
    bein....je vais surement passer pour un nul, mais j'ai l'ICD2, et je n'ai jamais débugger...je ne sais pas faire, et j'ai pas essayé...

  21. #51
    invite74b5b8f7

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    j'obtiens:
    RA3=RA4=RA5=0 pour an1 allant de 0v à 1,244V
    RA3=1 et RA4=RA5=0 pour an1 allant de 1,244V à 2,48V
    RA4=1 et RA3=RA5=0 pour an1 allant de 2,48V à 3,72V
    et donc RA3=RA4=1 et RA5=0 pour An1 allant de 3,72 à 5V
    Et ben voila, je me doutais bien que c´était un problème d´initialisation mais j´avais pas trop le temps de me plonger dans ta doc...

    Bah maintenant, il suffit de faire soit à ma facon:
    Van0 = (ADRESH*256 + ADRESL)*q;

    soit comme t´as proposé Seb.26, avec un décalage à gauche d´ADRESH...

    C´est pareil donc à toi de voir ce qui te parle le plus...

    Et la, ca devrais marcher...

    (Sinon, t´as compris le principe du test que je t´ais proposé(et que tu viens de faire)?)

  22. #52
    invitef26bdcba

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Salut,

    mais j'ai l'ICD2, et je n'ai jamais débugger...je ne sais pas faire, et j'ai pas essayé
    Alors, c'est le moment de s'y mettre...

    Tu aurais déjà pu lire depuis longtemps les valeurs de l'ADC sans artifice.

    David.

  23. #53
    Seb.26

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Citation Envoyé par DavidDB Voir le message
    Alors, c'est le moment de s'y mettre...
    Tu aurais déjà pu lire depuis longtemps les valeurs de l'ADC sans artifice.
    David.
    Ecrire du code sans debuggueur, ça revient un peu à vouloir creuser une piscine sans pelleteuse ... c'est possible, mais c'est long et pénible ...

  24. #54
    Seb.26

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Ps: quand à "Van0 = (ADRESH*256 + ADRESL)*q" puisque tu es justifié à droite, pourquoi ne pas directement lire un 16bits au lieu de t'embeter avec des décalages & Co ... ??? ... genre en utilisant ADRES au lieu de ADRESH et ADRESL ...
    ( perso je pensais que tu étais justifié à gauche, donc qu'il fallait décaler, mais en fait t'as pas besoin dans ton cas ... )

  25. #55
    invite3c35244f

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    (Sinon, t´as compris le principe du test que je t´ais proposé(et que tu viens de faire)?)
    Oui oui, on vient en faite vérifier l'état des 2 bits de ADRESH, si X=1, alors ADRESH=256 ,si x=2 ADRESH=512, et si x=3 ADRESH=768 et si x=0 ADRESH<768...
    Par contre si vous savez faire avec l'ICD2 je veux bien apprendre ou si vous avez des documentations...
    Merci d'avance
    Nicolas

  26. #56
    Seb.26

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Pour ICD2 : tu deselectionne ton ICD2 dans le menu programmateur de MPLab, et tu le selectionne dans le menu Debuger ...

    Ensuite, tu place un point d'arret ou tu veux ( double clic sur une ligne du source )

    NB: pense à utiliser le fichier de link pour debug ( l'utilisation d'ICD2 bouffe quelques octets en RAM ... mais rien de mechant )

  27. #57
    invite3c35244f

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Par contre j'ai toujours un probleme pour le décalage de la tension....
    pour q=4,88e-3, quand je fais un test avec un seuil à 2,5 V, en réalité le basculement se fait à 2,98V...
    Bizarre...je pourrai combler cela en modifiant le coefficient q, mais jtrouve pas ça réglo!!!

  28. #58
    invite74b5b8f7

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Ecrire du code sans debuggueur, ça revient un peu à vouloir creuser une piscine sans pelleteuse ...
    Bah, moi je creuse à la main
    J´utilise des MSP430 et je les programmes via le BSL donc pas moyen d´utiliser de debuggueur (à ma connaissance) mais vu que je travail avec une liaison série via hyperterminal, je peux afficher tout ce que je veux

    Sinon, effectivement, les debuggueurs sont faits pour résoudre facilement ce genre de problème...

  29. #59
    invite74b5b8f7

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    Par contre j'ai toujours un probleme pour le décalage de la tension....
    Pourtant:
    j'obtiens:
    RA3=RA4=RA5=0 pour an1 allant de 0v à 1,244V
    RA3=1 et RA4=RA5=0 pour an1 allant de 1,244V à 2,48V
    RA4=1 et RA3=RA5=0 pour an1 allant de 2,48V à 3,72V
    et donc RA3=RA4=1 et RA5=0 pour An1 allant de 3,72 à 5V
    Tes seuils sont correctent !
    Cherces dans ce que tu as fait dernièrement...

  30. #60
    invite3c35244f

    Re : Conversion A/N : Utilisation de ADRESH+ADRESL

    J'ai essayé d'utiliser le debbuger, mais jy comprend pas grand chose, j'arrive dans un fichier asm avec une fleche a gauche,,,
    j'avai mi le break devant Van1=ADRES pour voir le résultat de la convertion, mais???
    alors si quelqun peu men dire 2 mots...

    En ce qui concerne le décalage, ça vient des tension de références pour le PIC?
    Cherces dans ce que tu as fait dernièrement...
    La chose qui est faites apres est la multiplication par q, donc mon "q" est faux mais en théorie il est vrai
    et comme q est calculer pour Vdd=5V,...mais ce quest bizarre c'est en pratique Vdd=4.99 donc q serait donc de 4.87e-3 ce qui ne change quasi rien...
    merci encore

Page 2 sur 3 PremièrePremière 2 DernièreDernière

Discussions similaires

  1. PIC: Adresh/adresl
    Par invitee002cb17 dans le forum Électronique
    Réponses: 8
    Dernier message: 18/05/2012, 01h15
  2. Conversion
    Par invite67c1fe3a dans le forum Physique
    Réponses: 7
    Dernier message: 20/10/2007, 23h07
  3. Conversion A/D
    Par Toufinet dans le forum Électronique
    Réponses: 10
    Dernier message: 26/05/2006, 12h25
  4. conversion
    Par invite4c1c58fb dans le forum Logiciel - Software - Open Source
    Réponses: 11
    Dernier message: 08/11/2005, 11h40
  5. Conversion DC/AC
    Par invitef7e7ab49 dans le forum Électronique
    Réponses: 6
    Dernier message: 08/06/2005, 17h48
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...