A/n pic 16f877a
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

A/n pic 16f877a



  1. #1
    narakphysics

    A/n pic 16f877a


    ------

    Bonjour à tous
    j'aimerai comparer une tension à deux valeurs (1 V et 2 V) en affichant leurs conversions sur 4 leds, pour cela j'ai pensé à utilisé le convertisseur A/N du pic 16F877A.
    le problème c'est que j'arrive pas à configurer les deux registres ADCON0 et ADCON1.
    voici le programme que j'ai utilisé mais toujours tous le portb à l'état haut!!
    Code:
    unsigned int temp_res;
    void main() {
    TRISB = 0; //PORTB as output
    TRISA = 0xFF; //PORTA as input
    ADCON1 = 0x0E; // Set AN0 channel pin as analog
    CMCON |= 7; // Disable comparators
     do {
        temp_res = ADC_Read(2);   // Get 10-bit results of AD conversion
        PORTB = temp_res;         // Send lower 8 bits to PORTB
    } while(1);
    }
    Y a-t-il une erreur??
    comment doit je configurer les deux registres??
    merci d'avance

    -----

  2. #2
    inoxxam

    Re : A/n pic 16f877a

    Salut
    As-tu essayé PORTB = 0x00; pour voir si ton problème vient effectivement de la configuration de ton port?

  3. #3
    narakphysics

    Re : A/n pic 16f877a

    Merci de votre réponse
    oui j'ai rajouté cette ligne avant while mais malheureusement aucune résultat!!

  4. #4
    freepicbasic

    Re : A/n pic 16f877a

    Comment le compilateur peut trouver un CMCON qui existe sur les 18F mais pas sur les 16F ?

    Il y a problème de type de processeur !
    mettre l'include correct au debut !

    c est ADCON0 et ADCON1 sur le 16F877
    Dernière modification par freepicbasic ; 10/09/2012 à 10h41.
    A+, pat

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

    Re : A/n pic 16f877a

    merci de votre réponse
    CMCON c'est pour désactiver le comparateur; non???

  7. #6
    freepicbasic

    Re : A/n pic 16f877a

    Sur les 18F oui pas sur le 16F
    sur le 16F Il n'y a pas de comparateur hardware !

    Cela fait donc penser que le compilateur n'a pas le bon .inc s'il ne sort pas d'erreur.
    A+, pat

  8. #7
    narakphysics

    Re : A/n pic 16f877a

    donc que doit je faire??
    j'aurai besoin d'une seule entrée analogique et 4 sorties numériques!
    pourriez vous m'aider ???
    merci encore une fois

  9. #8
    invite03481543

    Re : A/n pic 16f877a

    Bonjour,

    quel compilateur C?

    Où est l'initialisation du convertisseur A/D?

    Comment veux tu que ça marche tout seul?
    ADCON0 tu connais?
    Tu as ouvert la datasheet?
    Dernière modification par HULK28 ; 10/09/2012 à 15h54.

  10. #9
    narakphysics

    Re : A/n pic 16f877a

    merci de votre réponse M HULK
    oui c'est compilatuer C (mikroC)
    c'est ça mon problème, comment configurer les deux registres ??

  11. #10
    narakphysics

    Re : A/n pic 16f877a

    Re.
    Citation Envoyé par HULK28 Voir le message
    Bonjour,

    quel compilateur C?

    Où est l'initialisation du convertisseur A/D?

    Comment veux tu que ça marche tout seul?
    ADCON0 tu connais?
    Tu as ouvert la datasheet?
    Pour le ADCON0 (le bit 5 à 3 : CHS2|CHS1|CHS0=000 pour choisir RA0 comme une entré analogique):
    Code:
    ADCON0 = 0X01;
    Pour le ADCON1: Voici la configuration des différents bits:
    PCFG3:PCFG0
    RE2
    RE1
    RE0
    RA5
    RA3
    RA2
    RA1
    RA0
    VREF+
    VREF-
    A/R/D
    1111
    D
    D
    D
    D
    VREF+
    VREF-
    D
    A
    RA3
    RA2
    1/2/5
    Code:
    ADCON1 = 0X0E; 

    Pour désactiver le comparateur j'ai trouvé la même instruction!! :
    Code:
    CMCON = 7;
    Maintenant je désire rassembler deux fonctions : la conversions A/N et PWM!! mais j'ai rencontré un problème: si j'utilise seulement la conversion alors le programme ça marche (pratiquement) même chose pour La PWM!! en revanche si je combine les deux fonctions ça donne rien!
    voici le code que j'ai utilisé:
    Grosso modo, le montage a pour rôle de convertir la tension analogique en numérique+la commande d'une MCC via la PWM (voir l'image ci-joint)!
    Code:
    unsigned int temp_res;
     unsigned int voltage;
    void my_function (){
        temp_res = ADC_Read(0);   // Get 10-bit results of AD conversion
        voltage = (int)temp_res/204;
    
    
        switch (voltage) {
      case 0:PORTB.F0=1;  break;
      case 1: PORTB.F1=1;  break;
      case 2: PORTB.F2=1;  break;
      case 3: PORTB.F3=1;  break;
      case 4: PORTB.F4=1;  break;
      case 5: PORTB.F5=1;  break;
      }
        PORTB=0x00;
             }
    void main() {
    TRISC = 0x00 ; // Port A en sortie
    TRISB = 0x00; //PORTB as output
    TRISA = 0xFF; //PORTA as input
    ADCON0 = 0X01; // RA0 AS ANALOG INPUT;
    ADCON1 = 0x0E; // Set AN0 channel pin as analog
    CMCON = 7; // Disable comparators
    PWM1_Init(250);
    PWM1_Start();
    PORTC=0x00;
    PORTB=0x00;
    delay_ms(1000);
    while (1) {
    PWM1_Set_Duty(220); 
    my_function();
    delay_ms(1000);
    //////
    PWM1_Set_Duty(110);
    my_function();
    delay_ms(1000);
    }
    }
    merci d'avance
    Images attachées Images attachées  
    Dernière modification par narakphysics ; 10/09/2012 à 22h20.

  12. #11
    invite03481543

    Re : A/n pic 16f877a

    Citation Envoyé par narakphysics Voir le message
    oui c'est compilatuer C (mikroC)
    c'est ça mon problème, comment configurer les deux registres ??
    Il faut lire un peu, tout est indiqué dans l'aide de ton compilateur, si tu utilises ADC_Read(2); c'est que tu utilises la fonction toute faite du compilo donc il ne faut qu'initialiser le module A/D :

    Code:
    ADC_Init();
    Dernière modification par HULK28 ; 11/09/2012 à 08h43.

  13. #12
    narakphysics

    Re : A/n pic 16f877a

    Re.
    En lisant le manuel, adc_init() initialise le module adc avec les paramètres par défaut!! Et dans l'exemple il n'y a pas cette fonction.
    quels sont les paramètres par défaut ??

Discussions similaires

  1. Rs232 pic 16f877a
    Par invitea0a062f4 dans le forum Électronique
    Réponses: 3
    Dernier message: 29/06/2010, 12h55
  2. pic 16F877A
    Par invite636b8579 dans le forum Électronique
    Réponses: 22
    Dernier message: 01/04/2009, 15h00
  3. CAN pic 16f877A
    Par invite85bfc8b3 dans le forum Électronique
    Réponses: 1
    Dernier message: 11/08/2008, 13h39
  4. PIC 16F877A sur 3V ?
    Par invite2dc206d9 dans le forum Électronique
    Réponses: 17
    Dernier message: 17/02/2008, 20h49
  5. pic 16f877a
    Par invited2ae1532 dans le forum Électronique
    Réponses: 3
    Dernier message: 01/02/2008, 10h49
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...