[PIC]Convertion A/N ... petite question bête !
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

[PIC]Convertion A/N ... petite question bête !



  1. #1
    invitef900c612

    [PIC]Convertion A/N ... petite question bête !


    ------

    Bonjour à tous,
    Désolé de vous déranger pour si peu ^^ mais là je dois avouer ne pas être sûr de mon coup !


    Voilà demain je reçois mon programmateur (PIC-04)], mes PIC16F684et mes quartz à 4MHz...
    Très bien me direz-vous, effectivement répondrais-je^^ Maintenant "y'a plus qu'a faut que" comme on dit !


    Bon alors je vais poser ma question (stupide???) maintenant... comme ça ce sera fait ^^

    Alors voilà je dévelloppe sous MPLab(V.7.31) avec le compilateur C gratuit(pour prototype) CC5X...
    Et j'ai besoin de récupérer un signal analogique issu d'un capteur et de le traiter... donc de faire une conversion Analogique/Numérique...
    Mon PIC16F684 possède des entrées A/N, donc tout va bien !
    Seulement je n'arrive pas à trouver une fonction C à inclure pour pouvoir faire ma convertion... alors, comment faut faire ?!
    Ca parait idiot comme question mais je ne sais pas comment le faire (jusque là, en cours, on m'avait donn une jolie fonction déjà toute faite... donc... ) !!!

    D'avance Merci....

    -----

  2. #2
    invitee002cb17

    Re : [PIC]Convertion A/N ... petite question bête !

    Salut, tu es en stage non??
    Moi aussi ! ^^
    En fait, dans la datasheet tu dois pouvoir trouver les registres correspondant (ADCON0 - ADCON1)
    Je programme sur le 16F870, je ne sais pas si ce sont les mêmes registres
    Je me suis servi du convertisseur moi aussi mais... en assembleur !!
    Si tu peux changer de language, je suis à toi
    A plus !

  3. #3
    invite5637435c

    Re : [PIC]Convertion A/N ... petite question bête !

    Je profite de votre discussion pour vous soumettre un petit prog en C (compilo Hitech C) qui réalise la mesure de 3 tensions continues et affiche sur 3 bargraphes à 10 leds.
    Genre LM3914 mais pour 3 entrées simultanées.

    Les routines sont, je pense, claires et permettront de répondre à un nombre croissant de demande de conversion A/N avec PIC.

    Il faudra renommer les fichiers après téléchargement car seule .txt passe.
    Ainsi Led3v2_c.txt devient Led3v2.c etc...

    Bonne lecture.
    Fichiers attachés Fichiers attachés

  4. #4
    invite1469b964

    Re : [PIC]Convertion A/N ... petite question bête !

    Pour effectuer une conversion A/N avec un PIC, c'est très simple surtout en C.

    Tu initialises tes entrées broches RB0,RB1... en entrées pour avoir accès à AN0, AN1... Ensuite, tu configure comment tu veux ton résultat avec ADCON1. (les 10 bits du résultat se trouvent en poid faibles ou en poids forts) et avec ADCON0, tu choisi la voie à convertir et le moment ou démarrer. Et ensuite, tu atten la fin de la conversion.

    Exemple simple :

    void main(void)
    {
    TRISA=0xFF; // PortA en entrées
    ADCON1=0; // Résultat sur 10 bits de poids forts
    ADCON0=5; // Lance la conversion de la voie AN0
    while(((ADCON0)&(4))==1); // Attente fin de conversion

    // Le résultat de la conversion se trouve dans ADRESH (MSB de 8 bits) et ADRESL (LSB de 8 bits).

    }

    Pour lancer la conversion sur AN1, il aurait fallu écrire :
    ADCON0=0x0D; au lieu de ADCON0=5; ....

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

    Re : [PIC]Convertion A/N ... petite question bête !

    N'oublies pas de parler de la gestion des interruptions, car c'est là le plus subtil.

  7. #6
    invite1469b964

    Re : [PIC]Convertion A/N ... petite question bête !

    En effet, tu peux déclancher tes conversions sur des interruptions. Mais si tu veux que les conversions se fassent constament, tu met ton démarrage de conversions dans un while(1) en n'oubliant pas de ne pas tenir compte des interruptions en mettant 0 dans INTCON. Après, si tu veux déclancer une conversion sur un évenement particulier, à toit de voir quel interruption tu doit utiliser.

    Un exemple : Tu peux vouloir échantillonner un signal à une certaine fréquence. Alors tu vas utiliser un timer qui va te générer une interruption toutes les x "secondes" et à chaque interruptions, tu lances une conversion. Et tu traite ta valeur suivant tes besoins.

    A toi de voir suivant la fonction que tu doit réaliser.

  8. #7
    invitef900c612

    Re : [PIC]Convertion A/N ... petite question bête !

    D'accord, merci à vous tous...

    Pour ma convertion, j'ai besoin de la faire en permanence!
    En fait je récupère le signal d'un capteur et je dois le traiter vraiment tout le temps donc je pense que de déclencher dans la boucle for( ; ; ) (ou while(1) ^^) sera la meilleure chose à faire !

    Par contre vous me parlez d'IT... quel rapport ya-t-il entre les IT et la convertion A/N ???

  9. #8
    invitef900c612

    Re : [PIC]Convertion A/N ... petite question bête !

    Citation Envoyé par Adrian1903
    Je me suis servi du convertisseur moi aussi mais... en assembleur !!
    Si tu peux changer de language, je suis à toi
    A plus !


    Je peux toujours inclure du code assembleur dans mon code C n'est ce pas ???
    Il me semble que oui.. donc... je suis tout ouie ^^

  10. #9
    invite1469b964

    Re : [PIC]Convertion A/N ... petite question bête !

    Oui, tu peux mettre du code assembleur dans ton code C. Je croi qu'il faut utiliser l'instruction "asm". Mais il faudrais revérifier. En tout cas, je te conseil de le faire en C c'est carément plus rapide et nettement plus simple.

    Les interruptions peuvent de permettre te déclancher par exemple une conversion Ana/Num sur un événement, c'est tout. Mais apparement dans ton cas, tu as simplement besoin d'inclure le code du déclanchement de la conversion et du traitement du résultat dans une boucle while(1) ou dans un for( ; ; )...

  11. #10
    invitef900c612

    Re : [PIC]Convertion A/N ... petite question bête !

    Exactement, merci beaucoup !!

Discussions similaires

  1. Petite question bête sur la génétique ...
    Par invite40dcade0 dans le forum Biologie
    Réponses: 7
    Dernier message: 16/03/2012, 19h57
  2. Petite question bête
    Par invite88df6944 dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 2
    Dernier message: 10/04/2007, 00h32
  3. petite question toute bête...
    Par invitea60ac6f0 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 07/03/2007, 14h34
  4. petite question bête sur la perméabilité
    Par invite336e4fcc dans le forum Physique
    Réponses: 1
    Dernier message: 18/08/2006, 19h23
  5. petite question toute bete
    Par inviteca14cd6c dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 6
    Dernier message: 25/05/2006, 11h33
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...