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

Configuration des registres ADCON1 et ADCON2



  1. #1
    lukes

    Configuration des registres ADCON1 et ADCON2


    ------

    Bonjour,

    J'optimise actuellement un programme pour un robot (aspîrateur ) et j'aimerais mesurer une tension sur les entrées analogiques d'un pic 16F877.
    Le problème est que je n'arrive pas a configurer les registres ADCON 1 et 2 pour mesurer une tension sur les entrées AN1, AN2 et AN3.

    Ayant déja consulter le datasheet, et j'avoue que je n'ai pas trop compris , pourriez vous me dire comment faire ?

    Merci d'avance !

    -----

  2. Publicité
  3. #2
    Gérard

    Re : Configuration des registres ADCON1 et ADCON2

    Citation Envoyé par lukes Voir le message
    Bonjour,

    J'optimise actuellement un programme pour un robot (aspîrateur ) et j'aimerais mesurer une tension sur les entrées analogiques d'un pic 16F877.
    Le problème est que je n'arrive pas a configurer les registres ADCON 1 et 2 pour mesurer une tension sur les entrées AN1, AN2 et AN3.

    Ayant déja consulter le datasheet, et j'avoue que je n'ai pas trop compris , pourriez vous me dire comment faire ?

    Merci d'avance !
    Bonjour,
    C'est normal, il n'y a pas de registre ADCON2.
    Il n'existe que ADCON0 et ADCON1.

    Avec quel langage travailles-tu ?
    Si c'est en assembleur, voir les notes d'application chez Microchip.
    Si c'est en Basic ou C, il faut voir les exemples fournis avec les compilateurs.

  4. #3
    lukes

    Re : Configuration des registres ADCON1 et ADCON2

    Re-bonjour Gérard

    Quelle gaffe ! Je m'étais tromper pour les registres, qui sont en effet ADCON 0et 1.
    Je programme ce pic en C et j'utilise le compilateur MikroC de Mikroelektronika.
    J'ai bien regardé dans les docs fournies avec le compilateurs, il n'ya rien concerant les registres ADCON. Je suis vraiment dans une impasse alors si vous pourriez me donner un exemple ?

    Merci beaucoup pour vos réponses

  5. #4
    invite03481543

    Re : Configuration des registres ADCON1 et ADCON2

    Salut,

    normal, MikroC utilise des fonctions toutes faites à ce niveau.

    Tu peux néanmoins créer toi même ces fonctions (c'est même conseillé), car la macro n'étant pas publique tu ne sais pas comment est géré le convertisseur.

    Par exemple rien ne précise si la justification est à droite ou à gauche, quel Tad est utilisé...

    Si tu cherches juste à faire une mesure il suffit donc d'appeler directement la fonction du compilateur:

    La fonction est prédéfinie ainsi:
    unsigned int Adc_Read(unsigned short channel);


    Adc_Read retourne un entier (0 à 1023)

    il suffit alors d'écrire:

    res=Adc_Read(0);

    Pour recueillir dans la variable res le résultat de la mesure de l'A/D sur An0.
    @+
    Dernière modification par HULK28 ; 14/06/2008 à 22h14.

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

    Re : Configuration des registres ADCON1 et ADCON2

    Bonsoir !

    Merci pour votre réponse, mais j'aimerais savoir comment on configure les registres ADCON 0 et 1 pour justement mesurer une tension aux entréees analogiques par le biais de ADC_read.
    Exemple, une citation de mon programme (donc qui ne marche pas ^^)

    ADCON0=0b10000100; //C'est à cet endroit que je bloque
    ADCON1=0b10100011; //

    valeur=ADC_Read(0);

    Voila, le problème c'est quelle valeur faut-il mettre au bits de ADCON0 et 1 ?

    Merci beaucoup pour vos réponses a+

  8. #6
    invite03481543

    Re : Configuration des registres ADCON1 et ADCON2

    Ah oui pardon, il faut en effet configurer ADCON1, c'est ADCON0 dont tu n'as pas à te soucier (la fonction met elle même les bits du registre en position selon la fréquence du quartz et autres paramètres).

    Il faut donc juste indiquer dans le registre ADCON1 quelles sorties tu comptes affecter aux A/D.

    Donc les bits 0 à 3 selon le tableau que tu trouves dans la datasheet de la doc de ton PIC, et le bit 5 (ADFM) que tu dois mettre à 0 car mikroC fais une justification à gauche.

    Donc tu dois par exemple avoir:

    ADCON1=0b00000010;

    si tu veux mettre AN0 à AN4 en A/D avec Vref+=VDD et Vref-=Vss
    @+

  9. Publicité
  10. #7
    invite03481543

    Re : Configuration des registres ADCON1 et ADCON2

    Donc ton programme doit contenir les lignes suivantes:

    void main(){

    ADCON1=0x02;
    TRISA=0xFF;

    res=Adc_Read(0);

    .........
    }

  11. #8
    lukes

    Re : Configuration des registres ADCON1 et ADCON2

    Merci beaucoup Hulk, tu m'a bien aidé !

  12. #9
    lukes

    Re : Configuration des registres ADCON1 et ADCON2

    Re,

    Mais si je met ce programme que tu m'a indiqué, je vais pourvoir lire une tension aux 3 entrées analogiques ?

  13. #10
    Gérard

    Re : Configuration des registres ADCON1 et ADCON2

    Citation Envoyé par lukes Voir le message
    Re,

    Mais si je met ce programme que tu m'a indiqué, je vais pourvoir lire une tension aux 3 entrées analogiques ?
    Bonjour,
    Je ne pense pas
    avec res=Adc_Read(0), tu vas lire RA0
    res= Adc_Read(1) devrait lire RA1
    Attention tout de même parce que le résultat sera dans res pour les 2 mesures.
    Si tu veux garder les 2 (ou 3) mesures, il faut définir une variable pour chaque valeur que tu veux convertir.
    exemple : res0, res1 ...

    Il faut aussi définir les entrées RA1 ... en entrées analogiques.

  14. #11
    lukes

    Re : Configuration des registres ADCON1 et ADCON2

    Re

    Et comment faire pour définir les entrées RA1 en entrées analogiques ?

    Merci de m'aider !

  15. #12
    invite03481543

    Re : Configuration des registres ADCON1 et ADCON2

    Bonsoir,

    C'est dans ADCON1 que tu vas choisir ta configuration (avec les bits PCFG3~PCFG0) , il faut regarder le tableau de la doc du PIC dans la section 11: Analog to Digital Converter.

    Ensuite tu places le registre TRISA en configuration d'entrées selon les affectations que tu as fais dans ADCON1.

    Par exemple si tu choisis d'attribuer RA0,RA1,RA3 en entrées de mesures et le reste en sorties digitales:

    ADCON1=0b00000100; // soit ADCON1=0x04;
    TRISA=0b00001011; // RA0,RA1,RA3 en entrées, le reste en sortie

    @+

  16. Publicité
  17. #13
    Melo567

    Re : Configuration des registres ADCON1 et ADCON2

    Bonjour!!et si je veux déclarer que tous les entrées du PORTA soient des entrées analogique.Que devrai je écrire ?

  18. #14
    antek

    Re : Configuration des registres ADCON1 et ADCON2

    Citation Envoyé par Melo567 Voir le message
    Bonjour!!et si je veux déclarer que tous les entrées du PORTA soient des entrées analogique.Que devrai je écrire ?
    ANSELA à b'11111111'

  19. #15
    Melo567

    Re : Configuration des registres ADCON1 et ADCON2

    Le registre ANSELA n'est pas pris en charge du pic 16F877A!!

  20. #16
    Melo567

    Re : Configuration des registres ADCON1 et ADCON2

    Est ce qu'il y a une alternative avec ADCON1 ET ADCON0?

  21. #17
    antek

    Re : Configuration des registres ADCON1 et ADCON2

    Citation Envoyé par Melo567 Voir le message
    Est ce qu'il y a une alternative avec ADCON1 ET ADCON0?
    Il n'y a pas de ANSEL effectivement !
    C'est le registre ADCON1 qui gère ça.
    Tu n'as pas la doc ?

  22. #18
    paulfjujo

    Re : Configuration des registres ADCON1 et ADCON2

    bonsoir,


    Avec MikroC on ne se preoccupe pas des registres internes ADCON1 ...
    il suffit de positionner les entrees ANA comme de "Entrees" avec la commande TRISx qui va bien
    puis

    Code:
     ADC_Init();
    EA0=ADC_Read(0);
    EA1=ADC_Read(1);
    EA2=ADC_Read(2);
    sinon on peut le faire en ASM ..sous mikroC

  23. Publicité

Discussions similaires

  1. Atomistique: configuration électronique des éléments
    Par Chokaolic dans le forum Physique
    Réponses: 9
    Dernier message: 01/01/2010, 06h15
  2. Réponses: 5
    Dernier message: 09/11/2009, 12h21
  3. Atmega => SBI et CBI sur des registres > à 0x1F
    Par Toufinet dans le forum Électronique
    Réponses: 0
    Dernier message: 17/04/2008, 16h39
  4. registres
    Par bilou2007 dans le forum Électronique
    Réponses: 4
    Dernier message: 05/04/2007, 22h36
  5. Base des registres windows
    Par subichan dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 10/01/2006, 19h55
Découvrez nos comparatifs produits sur l'informatique et les technologies.