PIC en C - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 43 sur 43

PIC en C



  1. #31
    Shaiton

    Re : PIC en C


    ------

    Bon alors, apres toute cette aide, quelque précisions

    tu as
    #use delay(clock=8000000)
    donc le setup_oscillator(OSC_8MHZ); me semble inutile (jamais vu ca, ca sort d'ou?)

    avec le shema on se comprendra mieux mais comme l'a remarqué HULK28 le circuit reset (pin MCLR) n'apparait pas (une resistant de 10k entre le 5v et le MCLR, avec un condo de 100nF entre le MCLR et la masse... c'est le minimum pour eviter les ennuit)

    -----
    Le Geek Sportif !

  2. #32
    umfred

    Re : PIC en C

    Citation Envoyé par HULK28 Voir le message
    Minpic.h déclare "RC" alors que tu es en mode quartz 8MHz.
    Elle utilise l'oscillateur interne. Mais il faut mettre INTOSCIO pour utiliser les RA4 et RA5 en I/O.

    Citation Envoyé par Shaiton Voir le message
    Bon alors, apres toute cette aide, quelque précisions

    tu as
    #use delay(clock=8000000)
    donc le setup_oscillator(OSC_8MHZ); me semble inutile (jamais vu ca, ca sort d'ou?)
    Le #use delay (clock=80000000) sert à utiliser les fonction delay_ms().
    Le setup_oscillator() sert à configurer la fréquence de l'oscillateur interne.
    (ça sort du compilateur CCS )

    mais comme l'a remarqué HULK28 le circuit reset (pin MCLR) n'apparait pas (une resistant de 10k entre le 5v et le MCLR, avec un condo de 100nF entre le MCLR et la masse... c'est le minimum pour eviter les ennuit)
    Pas forcément sur ce PIC, car comme il est déclaré dans le "MinPIC.h" avec NOMCLR, la pin MCLR est tiré au Vdd en interne.
    Néanmoins, il vrai que le logiciel ne s'exécute qu'une seule fois, et qu'il faut , pour le relancer, couper et remettre l'alimentation du circuit.

    Corrige le "MinPIC.h" en mettant INTOSCIO, et dis nous si tu vois des améliorations

  3. #33
    Shaiton

    Re : PIC en C

    ok merci umfred pour ces précisions.
    (je n'ai jamais utilisé l'osc interne...)
    Le Geek Sportif !

  4. #34
    umfred

    Re : PIC en C

    Citation Envoyé par Shaiton Voir le message
    ok merci umfred pour ces précisions.
    (je n'ai jamais utilisé l'osc interne...)
    je te rassure moi non plus , ni d'ailleurs CCS , mais je lis les docs et j'arrive à me débrouiller

  5. #35
    audemorel

    Re : PIC en C

    Mais il faut mettre INTOSCIO pour utiliser les RA4 et RA5 en I/O.
    Corrige le "MinPIC.h" en mettant INTOSCIO, et dis nous si tu vois des améliorations
    Mais la RA4 est justement la seule qui fonctionne, je ne veux donc pas changer ses propriétés... Si?

  6. #36
    umfred

    Re : PIC en C

    Pour moi, tant que tu n'aura pas fait ça, le PIC ne fonctionnera pas car:
    - tu as déclaré un oscillateur externe RC (#fuses ..., RC, ...)
    - mais il n'y pas de cellule RC (visible) sur ton montage.
    - tu utilise la fonction setup_oscillator() qui sous-entend que tu utilise l'horloge interne (et que celle-là).

    De plus, je remet en doute ta définition de PIN_A3:
    dans le manuel de CSS :
    Pins are defined in the devices .h file. The actual value is a bit address. For
    example, port a (byte 5) bit 3 would have a value of 5*8+3 or 43. This is
    defined as follows: #define PIN_A3 43.
    Ce qui signifie que PIN_A3 désigne le bit 3 du port A (donc RA3).

  7. #37
    Shaiton

    Re : PIC en C

    ce qui voudrait dire que
    "RA4 serait PIN_A4." (je maintiens mon sens logique a l'affut )

    le plus simple est d'ouvrir le 16F684.h pour y voir les definitions...
    Le Geek Sportif !

  8. #38
    audemorel

    Re : PIC en C

    Alors si je suis votre raisonnement, quand j'écris PIN_A3, ca serait pour RA3 et non pour AN3... Et donc par exemple si je veux utiliser la patte 10, ca serait PIN_C0 et non PIN_A4?

    Pourtant c'est bien sur la patte n°3 (=RA4) que ma tension passe de 0 à 5V... Pourquoi la fonction avec PIN_A3 fonctionne alors...

    Et remplacer RC par INTOSCIO, aiderait à faire fonctionner les autres PIN...?

    J'avoue que je suis un peu perdue...

    En tout cas merci à tous les 2 pour votre aide...

  9. #39
    audemorel

    Re : PIC en C

    Pour info voilà le contenu du 16F684.h
    Fichiers attachés Fichiers attachés

  10. #40
    Shaiton

    Re : PIC en C

    Ok on va regarder ca.
    Mais le plus simple pour verifier c'est de tester en sortie.

    tu mes une pin niveau haut, puis niveau bas. Tu verifie avec une led par exemple que t'es sur la bonne.
    (mais c'est bizarre quand meme comme manip.. je ne me susi jamais posé cette question )
    Le Geek Sportif !

  11. #41
    audemorel

    Re : PIC en C

    Je viens de faire output_high(PIN_A?) et de vérifier avec un multimètre... Et bien pour PIN_A0, PIN_A1 et PIN_A2, on a bien les pattes 13, 12 et 11 qui sont à 5V... Par contre avec PIN_A3 et PIN_A4, aucune patte n'est à 5V...

  12. #42
    umfred

    Re : PIC en C

    PIN_A3 (RA3) c'est normal, c'est juste une entrée, elle ne peut pas être utilisé en sortie.

    et PIN_A4 (RA4) ça doit dépendre de ce que tu as mis dans #fuses (RC, RCIO, INTOSC, ou INTOSCIO).

    Le fichier confirme ce que l'on a dit PIN_A3=RA3. Donc oui si tu veux utiliser la patte 10, il te faut utiliser PIN_C0.

  13. #43
    audemorel

    Re : PIC en C

    Ca y est, ça marche...

    Alors, déjà vous aviez raison : PIN_A3 correspond bien à RA3 et pour utiliser la patte 3, il fallait donc utiliser PIN_A4 (=RA4=AN3).

    Sinon mon problème venait de la version de mon compilateur... J'utilisais CCS PCWH, version 3.2... J'ai parlé de mon problème à un ami ce week-end, et beaucoup d'anomalies lui ont paru bizarre... Il m'a donc demandé si mon compilateur prenait bien les 16F684, celui ci étant un PIC assez récent. Je pensais que oui puisqu'il me le proposait lors de la création d'un nouveau projet. Mais en fait, je pense que la fiche 16F684.h avec été rajoutée après coup dans la base de données. Ainsi il pouvait me le proposer mais ne devait pas en comprendre toutes les fonctionnalités... Il compilait donc sans m'afficher de message d'erreur mais mon code n'était sans doute pas correctement transmis au PIC. Je me suis donc installée la version 4.1, et tout s'est mis à marcher...

    D'après mon ami, le fait que ça fonctionnait avec PIN_A3 devait bien être du à l'utilisation de la fonction MCLR de la patte 4. Le changement d'état que j'imposais sur la patte 3 (donc PIN_A4) devait créer des perturbations électromagnétiques sur la PIN_A3...

    Enfin maintenant, ça marche... Je suis à la fois très contente et très frustrée... J'ai passé énomément de temps à me prendre la tete, alors que mon code était quasiment bon dès le départ... Tout ceci m'aura au moins permis de mieux comprendre le fonctionnement de mon PIC et ça pourra toujours servir à l'occasion...

    En tout cas, merci beaucoup à tous les deux pour votre précieuse aide et votre soutien...

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Pic et pic et colegram...
    Par abracadabra75 dans le forum Électronique
    Réponses: 8
    Dernier message: 25/04/2008, 19h46
  2. erreur 0X00 programmation PIC plus questions sur les PIC
    Par invite4a8ccabd dans le forum Électronique
    Réponses: 4
    Dernier message: 22/07/2007, 14h36
  3. Réponses: 0
    Dernier message: 18/03/2007, 15h43
  4. Pic 16f877 Pic basic pro conseil
    Par invite4ff7103d dans le forum Électronique
    Réponses: 10
    Dernier message: 04/01/2007, 17h26
  5. Qui connais logi pic & et question à propos des pic
    Par Floris dans le forum Électronique
    Réponses: 10
    Dernier message: 29/05/2006, 22h40
Découvrez nos comparatifs produits sur l'informatique et les technologies.