Débutant pic 16f84a et pickit3
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 37

Débutant pic 16f84a et pickit3



  1. #1
    invite5445e13b

    Débutant pic 16f84a et pickit3


    ------

    Bonjour, j'ai enfin reçu mon pickit3.

    Je veux commencer par le commencement mais disons qu'avant de rentrer dans le vif du sujet, je voudrais faire une expérience la plus simple possible Faire clignoter une led avec un pic 16f84a.

    Coté Breadbord, j'ai une alim en 9V avec un régulateur de tension LM7805 5V( donc j'ai bien mes 5V )

    Coté logiciel :

    J'ai donc installé :

    MPLAB X
    XC8
    Proteus Isis

    J'ai créé un projet dans MPLAB x et maintenant, malgré des heures de lecture dans tous les sens, je vais avoir besoin de votre aide pour avancer sans m'éparpiller, ce que je fais depuis deux jours sans résultat.
    Merci d'avance

    -----

  2. #2
    invitefa96bd8f

    Re : Débutant pic 16f84a et pickit3

    Salut,

    Avant tout, montre le code que tu voudrais envoyer dans ton PIC.

    Ensuite, est ce que ton pickit est bien reconnu dans mplab ? est ce que ton PIC est bien reconnu par le pickit ?

  3. #3
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Bonjour; alors voici le code :
    // Ceci est un commentaire car il commence par //
    // La sortie RA0 du composant clignote
    // RA0 est la patte 17 du microcontrôleur
    // Attention de respecter les majuscules
    void main(void)
    {
    RA0 = 0;
    // Initialisation des pattes du microcontrôleur
    TRISA = 0b00000000;
    for (;;)
    // La suite du programme s'effectue en boucle
    {
    RA0 = 0;
    RA0 = 1;
    }
    }
    Le pickit3 est bien reconnu dans MPLAB x
    Je peux lire et programmer le pic 16f84a via pickit3 programmer.

    Cependant le code peut être compiler avec MPLAB 8 mais j'ai une erreur avec MPLAB x
    Code:
    make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
    make[1]: Entering directory `C:/Users/paul/Desktop/PIC 16F84/Exercice/n1/clignotement.X'
    make  -f nbproject/Makefile-default.mk dist/default/production/clignotement.X.production.hex
    make[2]: Entering directory `C:/Users/paul/Desktop/PIC 16F84/Exercice/n1/clignotement.X'
    "C:\Program Files (x86)\Microchip\xc8\v1.30\bin\xc8.exe" --pass1  --chip=16F84A -Q -G  --double=24 --float=24 --opt=default,+asm,+asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto "--errformat=%%f:%%l: error: (%%n) %%s" "--warnformat=%%f:%%l: warning: (%%n) %%s" "--msgformat=%%f:%%l: advisory: (%%n) %%s"    -obuild/default/production/_ext/1472/clignotement.p1  ../clignotement.c 
    ../clignotement.c:7: error: (192) undefined identifier "RA0"
    ../clignotement.c:9: error: (192) undefined identifier "TRISA"
    (908) exit status = 1
    make[2]: *** [build/default/production/_ext/1472/clignotement.p1] Error 1
    make[1]: *** [.build-conf] Error 2
    make: *** [.build-impl] Error 2
    make[2]: Leaving directory `C:/Users/paul/Desktop/PIC 16F84/Exercice/n1/clignotement.X'
    make[1]: Leaving directory `C:/Users/paul/Desktop/PIC 16F84/Exercice/n1/clignotement.X'
    
    BUILD FAILED (exit value 2, total time: 446ms)
    Merci d'avance !

  4. #4
    luc_1049

    Re : Débutant pic 16f84a et pickit3

    Bonjour

    Vous avez oublié de mettre un fichier d'include .h contenant la définition des ports.
    Vous avez oublié aussi le mot de config d'après votre soft.
    Vous avez oublié de mettre une temporisation entre l'état 0 et 1 du port, ça va aller trop vite pour la led.
    Bien entendu vous aurez bien polarisé la led et mis la résistance qui va bien...

    Vous pourrez rechercher sous l'explorateur windows dans le répertoire d'install de MPLAB X le fichier .h correspondant à votre PIC et en regardant vous y trouverez même des sources...
    Cf aussi le .pdf du PICKIT 3 et du compilateur, le parcourir !
    Prenant le temps de parcourir ce .H pour voir comment il est fait.

    Attention aux majuscules pour les symboles, attention à la valeur du delay cf un autre fil sur le forum.

    cdlt
    Dernière modification par luc_1049 ; 13/03/2014 à 12h00.

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

    Re : Débutant pic 16f84a et pickit3

    Bonjour, vous dite
    Vous pourrez rechercher sous l'explorateur windows dans le répertoire d'install de MPLAB X le fichier .h correspondant à votre PIC et en regardant vous y trouverez même des sources...
    , pourriez vous me donner le lien pour trouver ce fichier.h?
    Merci d'avance.

  7. #6
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Du coup je pense avoir trouvé le fichier .h dans le répertoire IC8, je l'ai mis dans mon code :

    #include "as16f84a.h";
    void main(void)
    {
    RA0 = 0;
    // Initialisation des pattes du microcontrôleur
    TRISA = 0b00000000;
    for (;
    // La suite du programme s'effectue en boucle
    {
    RA0 = 0;
    RA0 = 1;
    }
    }
    Mais qu'est-ce que le mot de config ?
    Merci !

  8. #7
    luc_1049

    Re : Débutant pic 16f84a et pickit3

    Bonjour

    Config permet de dire par exemple si vous validez ou pas le watchdog et configurer l'oscillateur

    Cf aussi les exemple "blinky" que l'on trouve en cherchant dans les sous répertoires de MPLAB X

    cdlt

  9. #8
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    J'ai importer le fichier p16f84a.inc de MPLABX\MPASMx mais lorsque je compile, il ne trouve pas le fichier :

    can't open include file "p16f84a.inc": No such file or directory
    Alors qu'il apparait bien dans ma liste de fichier du fichier .c
    Qu'en pensez vous ?

  10. #9
    luc_1049

    Re : Débutant pic 16f84a et pickit3

    Bonjour

    Vous devez mettre le ".h" dans votre projet c'est à dire le recopier (par exemple sous windows copier le fichier dans l'arborescence de votre projet) et dans "#include ..." au niveau du source.
    C'est un ".h" et pas un ".inc" qui pour moi correspond à l'assembleur.

    cdlt
    Dernière modification par luc_1049 ; 13/03/2014 à 14h48.

  11. #10
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Et ben dis donc, tant de galère pour 4 ligne de code, mais bon çà fait plaisir quand on a " build successfull".
    Merci Luc pour ton aide.
    Voici donc mon code :

    Code:
    #include "pic16f84a.h";
    void main(void)
    {
    RA0=0;
    // Initialisation des pattes du microcontrôleur
    TRISA = 0b00000000;
    for (;;)
    // La suite du programme s'effectue en boucle
    {
    RA0 = 0;
    
    RA0 = 1;
    
    }
    }
    Donc maintenant, il faut que j'insère la fonction delay avant de l'appeler, dite moi si c'est çà ?
    Merci, je continu donc mon investigation .

  12. #11
    luc_1049

    Re : Débutant pic 16f84a et pickit3

    Bonsoir

    Oui il faut mettre la fonction delay entre les 2 écritures dans RA et donc cf dernier fil dans le forum sur delay il y avait eu un problème la tempo n'était pas bonne.
    Attention la fonction delay est definie dans un include auquel cas il faut l'ajouter aussi dans le fichier .c sinon le compilateur fera une erreur.

    Vérifiez si besoin est que la sortie RA0 est bien configurée en sortie et en signal numérique si elle a d'autres fonctions analogiques notamment, sinon cela ne marchera pas.

    Vous êtes sur la bonne voie !
    cdlt

  13. #12
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Bonjour, donc j'ai récupérer un fichier delay.h
    Code:
    /* Filename: Delay.h
    * Delay functions for HI-TECH C on the PIC
    *
    * Functions available:
    * DelayUs(x) Delay specified number of microseconds
    * DelayMs(x) Delay specified number of milliseconds
    *
    * Note that there are range limits: x must not exceed 255 - for xtal
    * frequencies > 12MHz the range for DelayUs is even smaller.
    * To use DelayUs it is only necessary to include this file; to use
    * DelayMs you must include delay.c in your project.
    *
    */
    
    /* Set the crystal frequency in the CPP predefined symbols list in
    HPDPIC, or on the PICC commmand line, e.g.
    picc -DXTAL_FREQ=4MHZ
    
    or
    picc -DXTAL_FREQ=100KHZ
    
    Note that this is the crystal frequency, the CPU clock is
    divided by 4.
    
    * MAKE SURE this code is compiled with full optimization!!!
    
    */
    
    #ifndef XTAL_FREQ
    #define XTAL_FREQ 4MHZ /* Crystal frequency in MHz */
    #endif
    
    #define MHZ *1000L /* number of kHz in a MHz */
    #define KHZ *1 /* number of kHz in a kHz */
    
    #if XTAL_FREQ >= 4MHZ
    
    #define DelayUs(x) { unsigned char _dcnt; \
    _dcnt = (x)*((XTAL_FREQ)/(4MHZ)); \
    while(--_dcnt != 0) \
    continue; }
    #else;
    
    #define DelayUs(x) { unsigned char _dcnt; \
    _dcnt = (x)/((4MHZ)/(XTAL_FREQ))|1; \
    while(--_dcnt != 0) \
    continue; }
    #endif;
    
    extern void DelayMs(unsigned char);
    Puis j'ai entré la commande delay dans mon .c en oubliant pas le include

    Code:
    #include "pic16f84a.h";
    
    #include "delay.h";
    
    void main(void)
    {
    RA0=0;
    // Initialisation des pattes du microcontrôleur
    TRISA = 0b00000000;
    while(1)
    {
    DelayUs(20);
    RA0=0;
    DelayUs(20);
    RA0=1;
    }
    
    
    }
    Mon code se compile bien, et j'ai exporter le fichier .hex de manière à flasher mon Pic 16f84a.
    Mon problème est que le PicKit3 Programmer me dit que le fichier .hex ne contient pas les mots de configuration.
    Hors, si je rentre çà :

    Code:
    #include "pic16f84a.h";
    #include "delay.h";
    
    #pragma XT_OSC
    #pragma WDT_OFF
    #pragma CP_OFF
    #pragma PWRTE_ON
    
    
    void main(void)
    {
    RA0=0;
    // Initialisation des pattes du microcontrôleur
    TRISA = 0b00000000;
    while(1)
    {
    DelayUs(20);
    RA0=0;
    DelayUs(20);
    RA0=1;
    }
    }
    ,

    J'ai lors de la compilation :

    make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
    make[1]: Entering directory `C:/Users/paul/Desktop/MPLABX/n1'
    make -f nbproject/Makefile-default.mk dist/default/production/n1.production.hex
    make[2]: Entering directory `C:/Users/paul/Desktop/MPLABX/n1'
    "C:\Program Files (x86)\Microchip\xc8\v1.30\bin\ xc8.exe" --pass1 --chip=16F84A -Q -G --double=24 --float=24 --opt=default,+asm,+asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto "--errformat=%%f:%%l: error: (%%n) %%s" "--warnformat=%%f:%%l: warning: (%%n) %%s" "--msgformat=%%f:%%l: advisory: (%%n) %%s" -obuild/default/production/clignotement.p1 clignotement.c
    clignotement.c:5: warning: (335) unknown pragma "XT_OSC"
    clignotement.c:6: warning: (335) unknown pragma "WDT_OFF"
    clignotement.c:7: warning: (335) unknown pragma "CP_OFF"
    clignotement.c:8: warning: (335) unknown pragma "PWRTE_ON"

    "C:\Program Files (x86)\Microchip\xc8\v1.30\bin\ xc8.exe" --chip=16F84A -G -mdist/default/production/n1.production.map --double=24 --float=24 --opt=default,+asm,+asmfile,-speed,+space,-debug --addrqual=ignore --mode=free -P -N255 --warn=0 --asmlist --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,+osccal,-resetbits,-download,-stackcall,+clib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: (%%n) %%s" "--msgformat=%%f:%%l: advisory: (%%n) %%s" -odist/default/production/n1.production.elf build/default/production/clignotement.p1
    Microchip MPLAB XC8 C Compiler (Free Mode) V1.30
    Copyright (C) 2014 Microchip Technology Inc.
    License type: Node Configuration

    :: warning: (1273) Omniscient Code Generation not available in Free mode

    Memory Summary:
    Program space used 1Bh ( 27) of 400h words ( 2.6%)
    Data space used 5h ( 5) of 44h bytes ( 7.4%)
    EEPROM space used 0h ( 0) of 40h bytes ( 0.0%)
    Data stack space used 0h ( 0) of 3Fh bytes ( 0.0%)
    Configuration bits used 0h ( 0) of 1h word ( 0.0%)
    ID Location space used 0h ( 0) of 4h bytes ( 0.0%)


    Running this compiler in PRO mode, with Omniscient Code Generation enabled,
    produces code which is typically 40% smaller than in Free mode.
    See http://microchip.com for more information.

    make[2]: Leaving directory `C:/Users/paul/Desktop/MPLABX/n1'
    make[1]: Leaving directory `C:/Users/paul/Desktop/MPLABX/n1'

    BUILD SUCCESSFUL (total time: 1s)
    Loading code from C:/Users/paul/Desktop/MPLABX/n1/dist/default/production/n1.production.hex...
    Loading symbols from C:/Users/paul/Desktop/MPLABX/n1/dist/default/production/n1.production.elf...
    Loading completed
    Donc je pense que je n'utilise pas la bonne synthaxe pour déclarer le mot de configuration, merci d'avance pour votre aide !

  14. #13
    invitefa96bd8f

    Re : Débutant pic 16f84a et pickit3

    laisse tombé l'include de la fonction delay, pour le moment, tu met un
    while(i<100000)
    i++;
    entre tes deux changements d'état, et tu auras une tempo. (ne pas oublier de remettre i à 0 au bon moment, et de le déclarer en tant que "unsigned long").
    la valeur de 100000 est à adaptá selon la vitesse du micro et de la vitesse de clignotement que tu souhaites avoir (fais des essais)

  15. #14
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Donc j'ai fini par trouver la bonne synthaxe pour les bits de config :

    Code:
    #include "pic16f84a.h";
    #include "delay.h";
    
    #pragma config FOSC = XT
    #pragma config WDTE=OFF
    #pragma config CP=OFF
    #pragma config PWRTE=ON
    
    
    void main(void)
    {
    RA0=0;
    // Initialisation des pattes du microcontrôleur
    TRISA = 0b00000000;
    while(1)
    {
    DelayUs(20);
    RA0=0;
    DelayUs(20);
    RA0=1;
    }
    }
    Je vais étudier le while et vous redis !

    Au passage, je me suis rendu compte que j'ai des faux contacts sur ma plaque d'essai, avez vous déjà eu le problème ?
    Merci

  16. #15
    invitefa96bd8f

    Re : Débutant pic 16f84a et pickit3

    la fonction delayus va temporiser des...µs tu ne verras quand meme rien. (si ce n'est que la LED éclairera plus ou moins)

    des faux contacts ? tu peux préciser ?

  17. #16
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Bonjour Terriblement, j'essaye de rentrer le code mais j'ai des erreurs de synthaxe à tous les coins de rue, je débute en C et malgré mes recherches, je plane :

    Donc voici comment je voyais mon code mais bon, mplab me dit tel et tel signe ou mot n'est pas attendu etc..

    Merci de votre aide :

    Code:
    #include "pic16f84a.h";
    #include "delay.h";
    
    #pragma config FOSC = XT
    #pragma config WDTE=OFF
    #pragma config CP=OFF
    #pragma config PWRTE=ON
    
    #define i unsigned long;
    
    void main(void)
    {
    RA0=0;
    TRISA = 0b00000000;
    long i=0;
    while(i<100000)
    i++;
    
    RA0=1;
    i=0;
    }
    }

  18. #17
    invitefa96bd8f

    Re : Débutant pic 16f84a et pickit3

    Tu as un quartz relié à ton PIC ?
    1-si ce n'est pas le cas, reconfigure ton FOSC pour utiliser l'horloge interne.

    2-pour déclarer une variable, il faut la déclarer dans la fonction dans laquelle tu veux l'utiliser (ici, dans le main).

    Donc après l'accolade du main, tu fais un
    unsigned long i = 0;
    (ne pas mettre le #define, ce qui reviendrait à déclarer une macro)

    3-Tu ne peux pas te servir de RA0 comme ca,
    Pour changer une sortie d'état, on utilise le registre LAT.
    Donc tu auras,
    LATAbits.LATA0 = 0;

    4-je recoupe avec le 2-
    supprimes long i =0; (on s'est deja occupé de le déclarer dans 2-)
    de plus, il est toujours préférable de déclarer ses variables en "haut" de la fonction, sinon on ne s'y retrovue plus

    5-tu as une accolade en trop à la fin de ton code.

  19. #18
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Déjà je te remercie de m'accorder du temps, donc j'ai bien un quartz relié à OSC1 et OSC2, 4 Mhz.
    J'ai donc ré-écrit le main :

    Code:
    #include "pic16f84a.h";
    #include "delay.h";
    #include "stdint.h";
    
    #pragma config FOSC = XT
    #pragma config WDTE=OFF
    #pragma config CP=OFF
    #pragma config PWRTE=ON
    
    
    
    void main(void)
    {
        
        unsigned long i = 0;
            while(1){
    
            LATAbits.LATA0 = 0;
            while(i<100000)
            i++;
            LATAbits.LATA0 = 1;
            i=0;
                    }
    }
    Mais le compilateur ne reconnait pas
    Code:
     LATAbits
    Il me manque peut-être un includes ?

    Merci d'avance!

  20. #19
    invitefa96bd8f

    Re : Débutant pic 16f84a et pickit3

    Je viens de vérifier dans la datasheet de ton PIC;
    Il n'y a effectivement pas de registre LAT !
    Donc il faut effectivement utiliser le registre PORT.

    PORTAbits.RA0 par exemple.

    Tu as pensé aux condensateurs autour du quartz ?

  21. #20
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Oui deux de 33 nf reliés à la masse !

    Donc effectivement, avec PORTAbits.RAO çà compile bien.
    Bien sur, j'aurais du aller vérifier dans la datasheet mais en fait, je voudrai avoir un prog de base qui fonctionne, pour ensuite l'agrémenter.
    Mais j'avoue que je galère, d'une part niveau programmation, puisque je ne connais pas le C, et d'autre part dans l'utilisation, de MPLAB X en relation avec le PicKit3.

    Car j'arrive bien à programmer le pic en direct, mais j'ai réussi qu'une fois depuis 3 jour à relier le pickit3 à mon circuit en direct, je sais pas ce qui cloche ???

    Code:
    #include "pic16f84a.h";
    #include "delay.h";
    #include "stdint.h";
    
    #pragma config FOSC = XT
    #pragma config WDTE=OFF
    #pragma config CP=OFF
    #pragma config PWRTE=ON
    
    
    
    void main(void)
    {
        
        unsigned long i = 0;
    
    TRISA = 0b00000000;
            while(1){
    
            RA0 = 0;
            while(i<100000)
            i++;
            RA0 = 1;
            i=0;
                    }
    }
    Cependant, j'ai donc programmé mon pic mais la led ne clignote pas !
    Elle s'allume trois ou quatre seconde puis reste éteinte?

    Une idée ?
    Merci d'avance !

  22. #21
    invitefa96bd8f

    Re : Débutant pic 16f84a et pickit3

    Ton code affiche seulement RA0 et non pas PORTAbits.RA0
    Il faut des condensateurs de 33pF et non 33nF, vérifie ce que tu as mis !
    fais voir un schéma de ton cablage et une photo de ton montage
    il faut mettre deux tempos dans ton code (là, elle s'allume puis se reteint dans la foulée)
    tu peux réduire le test de i à 10000 dans le while.
    et enfin, va apprendre le C (lesiteduzero est super)

  23. #22
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Je m'excuse je me suis trompé de code le voici le dernier, où j'ai justement rajouté une tempo de manière à ne pas revenir tout de suite à l'autre :

    Code:
    #include "pic16f84a.h";
    #include "delay.h";
    #include "stdint.h";
    
    #pragma config FOSC = XT
    #pragma config WDTE=OFF
    #pragma config CP=OFF
    #pragma config PWRTE=OFF
    
    
    
    void main(void)
    {
        
        unsigned long i = 0;
        TRISA = 0b00000000;
            while(1){
    i=0;
            PORTAbits.RA0 = 0;
            while(i<100000)
            i++;
    
            PORTAbits.RA0 = 1;
            i=0;
            while(i<100000)
            i++;
                    }
    }
    C'est bien des condensateur 33pF

    Je demande qu'à apprendre mais comme je t'ai dis, j'ai besoin d'aide pour un circuit simple fonctionnel qui lui me permettra d'étendre mes recherches !
    En tout cas, je reprogramme le i=10000 au lieu de i=100000.
    J'attends tes instructions et commentaire qui me sont vraiement d'une grande aide !

  24. #23
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Trop cool çà marche, je n'ai pas changé la valeur de i mais j'avais oublié de remettre i=o juste après le while(1) ce qui fait qu'en toute logique, elle s'allumait une fois puis restait éteinte.
    Merci vraiment pour ton aide !

  25. #24
    invitefa96bd8f

    Re : Débutant pic 16f84a et pickit3

    tant mieux

    pas besoin de pic pour apprendre le C, je te conseil fortement d'aller faire un tour ici:
    http://fr.openclassrooms.com/informa...rogrammer-en-c
    partie1 à maitriser !
    partie 2 , au moins les chapitres 1-2-3

    bon amusement

  26. #25
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Alors tout d'abord, merci à luc_1049 et à Terriblement, pour vos précieux conseils qui m'ont permis d'aboutir à ce premier projet, à savoir, faire clignoter une LED.

    Mon but n'était pas le clignotement de la LED, mais de savoir utiliser ensemble plusieurs choses, à savoir :

    - Utiliser MPLAB X
    - Utiliser IC8
    - Utiliser PicKit3 In Situ

    C'est aujourd'hui chose faite après plusieurs jour de galère, et je vais donc expliquer mon cheminement de manière à ce que çà puisse servir à quelqu'un.

    Tout d'abord, je suis sous Windows 7 64 bits

    Donc premièrement, j'ai installé MPLAB X IDE 2.05 téléchargeable ici :MPLAB X

    Ensuite, j'ai installé MPLAB Compiler IC8 1.30 téléchargeable ici : MPLAB IC8

    Puis j'ai installé les logiciels du PicKit 3 téléchargeables ici : PicKit3

    Voici le shema de mon circuit :

    Nom : shema.jpg
Affichages : 439
Taille : 54,9 Ko

    Et voici le code du PIC 16F84A

    Code:
    #include "pic16f84a.h";
    #include "delay.h";
    #include "stdint.h";
    
    #pragma config FOSC = XT
    #pragma config WDTE=OFF
    #pragma config CP=OFF
    #pragma config PWRTE=OFF
    
    
    
    void main(void)
    {
        
        unsigned long i = 0;
        TRISA = 0b00000000;
            while(1){
    i=0;
            PORTAbits.RA0 = 0;
            while(i<100000)
            i++;
    
            PORTAbits.RA0 = 1;
            i=0;
            while(i<100000)
            i++;
                    }
    }
    Pour que picKit3 fonctionne In Situ, il faut, dans cet exemple, que dans MPLAB X IDE, vous alliez dans :

    - FILES
    - PROJECT PROPERTIES
    - Dans CATEGORIES à gauche, sélectionner PicKit3
    - Dans OPTION CATEGORIES à droite, sélectionnez POWER
    - Cochez POWER TARGET CIRCUIT PICKIT3
    - VOLTAGE LEVEL = 5V

    Dans le circuit, il ne faut surtout pas relier le pin 4 (MCLR) du 16F84A à l'alimentation stabilisée en 5 VOLT, sinon MPLAB ne pourra pas dialoguer avec le PICKIT3, celà a été mon plus gros souci, car j'arrivais à effacer, lire et programmer mon PIC en direct avec PICKIT3 PROGRAMMER, mais pas in situ !

    Enfin, si vous avez utilisé le PICKIT3 PROGRAMMER, ne pas oublier, pour utiliser le pickit3 dans MPLAB, de :

    - OUVRIR PICKIT3 PROGRAMMER
    - TOOLS
    - REVERT TO MPLAB MODE
    - Suivre la procédure jusqu'à la fermeture de PICKIT3 PROGRAMMER.

    Voila, si j'avais eu plus de temps, j'aurais pu développer la partie programmation, mais je ne l'ai pas et d'autre sont bien meilleurs que moi, débutant de base !

    Cordialement.

  27. #26
    Positron1

    Re : Débutant pic 16f84a et pickit3

    Salut,
    je vais donc expliquer mon cheminement de manière à ce que çà puisse servir à quelqu'un.
    Merci, c'est sympa de faire profiter de ton expérience , Il faut que je m'y mette, je crois que je vais en profiter
    Merci également à ceux qui t'ont aidé
    @+

  28. #27
    invitefa96bd8f

    Re : Débutant pic 16f84a et pickit3

    !il manque une ou deux choses plus quelques précisions,

    la longueur de cable entre le groupe condensateurs+quartz doit etre la plus courte possible.
    Il manque la stabilisation d'alim en entrée et en sortie du convertisseur 5V.
    Il manque le/les condensateurs de découplages entre VDD et VSS.

    Le PIC ne peut pas fournir/absorber beaucoup de courant (quelques mA tout au plus, donc avec ta LED on est déjà hors limite avec 8-9mA), mieux vaut utiliser un driver de courant pour éviter les surprises.

  29. #28
    invite5445e13b

    Re : Débutant pic 16f84a et pickit3

    Ok je vais corriger mon shéma, c'est quoi que tu appelle un driver de courant ?
    Merci!

  30. #29
    invite5c0d525e

    Re : Débutant pic 16f84a et pickit3


  31. #30
    bisou10

    Re : Débutant pic 16f84a et pickit3

    /facepalm

    New -> Project -> ....

    Et ton bout de code dans le main()

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Question PICKit3
    Par Gérard dans le forum Électronique
    Réponses: 3
    Dernier message: 28/06/2013, 12h16
  2. Réponses: 3
    Dernier message: 03/07/2012, 23h45
  3. Problème pour effacer des pics avec pickit3 et pickit3 programer
    Par chimere322 dans le forum Électronique
    Réponses: 20
    Dernier message: 03/02/2012, 01h14
  4. cette serrure est elle realisé avec un 16f84A-04 ou 16f84A-10?
    Par invite93ed6d5d dans le forum Électronique
    Réponses: 24
    Dernier message: 23/07/2011, 17h34
  5. Débutant avec un 16f84a
    Par invite3afc9382 dans le forum Électronique
    Réponses: 8
    Dernier message: 02/12/2007, 22h09
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...