Pic 12F675 et bouton poussoir
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Pic 12F675 et bouton poussoir



  1. #1
    invite92bb58f7

    Pic 12F675 et bouton poussoir


    ------

    Bonjour a tous et toutes.

    Je debute avec l'utilisation des pics.

    Je travaille avec le 12F675.

    j'arrive deja a faire quelques petites choses mais des que je complique....

    niveau logiciel : MPLAB + programmateur ICD2

    et CCS pour compiler (je programme en C.... je comprend pas grand chose a l'assembleur !)


    Mon probleme :

    J'essaye de faire clignoter une led (jusque la pas de probleme) mais je veut la faire clignoter suite a l'appui sur un bouton poussoir.

    Et la cela se corse !

    En effet elle clignote bien que j'appuie ou pas sur le bp !!

    ma source :
    #include <12F675.h>
    #device adc=8
    #use delay(clock=40000000)
    #fuses INTRC_IO,MCLR,NOWDT,NOPROTECT, NOPUT,Brownout

    #byte WPU=0x95
    #byte CMCON=0x19
    #byte TRISIO=0x85
    #byte GPIO=0x05
    #byte INTCON=0x05
    #byte ANSEL=0x9F

    #define bp 2

    void main()

    {
    GPIO = 0;
    ANSEL = 0;
    CMCON = 7;
    TRISIO = 0x0C ;

    if(bit_test (GPIO,bp))

    {

    debut :

    GPIO = 0x03;
    delay_ms(100);
    GPIO = 0x20;
    delay_ms(100);



    goto debut;

    }

    }

    -----

  2. #2
    invitee05a3fcc

    Re : Pic 12F675 et bouton poussoir

    Sur ton bouton poussoir, il y a une résistance de rappel ?

  3. #3
    invite92bb58f7

    Unhappy Re : Pic 12F675 et bouton poussoir

    Salut,

    Oui j'ai essayer aussi, mais rien du tout...

    et avec ce test :

    #include <12F675.h>
    #device adc=8
    #use delay(clock=40000000)
    #fuses INTRC_IO,MCLR,NOWDT,NOPROTECT, NOPUT,Brownout

    #byte WPU=0x95
    #byte CMCON=0x19
    #byte TRISIO=0x85
    #byte GPIO=0x05
    #byte INTCON=0x05
    #byte ANSEL=0x9F

    #define bp 2
    int bp_ok;

    void main()

    {
    GPIO = 0;
    ANSEL = 0;
    CMCON = 7;
    TRISIO = 0x0C ;

    bp_ok=bit_test(GPIO,bp);


    if(bp_ok==1)

    {

    debut :

    GPIO = 0x03;
    delay_ms(100);
    GPIO = 0x20;
    delay_ms(100);



    goto debut;

    }

    }

    cela ne fonctionne pas mieux, que j'appui ou pas sur le bp, bah ça clignote....



    Si quelqu'un a une idée....

    Merci.

  4. #4
    RISC

    Re : Pic 12F675 et bouton poussoir

    Salut,

    Jette un oeil sur ce document qui contient les fonctions que tu veux réaliser :
    http://www.aix-mrs.iufm.fr/formation...0en%20main.pdf

    Il y a également d'autres documents sur ce site :
    http://www.aix-mrs.iufm.fr/formation...indexPIC_C.htm

    a+

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

    Re : Pic 12F675 et bouton poussoir

    Cette résistance de "rapelle" pour ce boutton poussoir est bien entre la Masse et GPIO.2?

    Je ne suis pas familier avec ce compilateur C, mais
    Code:
    #fuses INTRC_IO,MCLR,NOWDT,NOPROTECT, NOPUT,Brownout
    Ceci implique que tu utilise la broche MCLR non? Résistance de rapelle à +5v ?

  7. #6
    invite92bb58f7

    Re : Pic 12F675 et bouton poussoir

    Salut,
    Finalement, je suis en train de me mettre a l'assembleur, qui finalement a l'air plus simple pour programmer les pic !


    Il me reste beaucoup de travail pour tout assimilé mais bon....


    Auriez vous des url de sites ou il y a des exemples de programmes ???

    Il y a bien sur le site de Bigonoff...

    Merci encore.

    A bientot.

  8. #7
    invite6ceed97c


  9. #8
    invite92bb58f7

    Re : Pic 12F675 et bouton poussoir

    Merci mister_e !!!


    Encore une petite question :

    toujours avec un 12F675, je veux tester en permanence l'appuie sur un bouton poussoir (en tache de fond si je puis dire) et continuer mon programme "principal" normalement et bien sur l'arreter ou faire autre chose suite a l'appui sur ce BP.

    Je n'y arrive pas, car forcement j'utilise ce genre de chose :
    btfsc IO_BP ; test si Bp actif
    goto ET_BouclePrincipale ; si non, boucle
    suite de mon prog....

    forcement cela ne peut pas fonctionner...
    mais comment faire autrement ?????

    Merci.

  10. #9
    invite6ceed97c

    Re : Pic 12F675 et bouton poussoir

    Plusieurs méthode. Habituellement j'utilise un Timer interne qui lit tous les bouttons poussoires environ 10-30 fois/secondes.

    Dans la routine d'interruption j'assigne des "Flags". Dans a boucle principale, je vérifie les flag et le programme agit en conséquence de ces flags.

    Toujours possible d'utiliser les interruptions disponible sur les I/O et executer le code associé a chaque source d'interruption dans la routine d'interruption. une fois les routines terminé.. tu retourne automatiquement au programme principal.

Discussions similaires

  1. Gestion Bouton poussoir ON/OFF
    Par invite3c35244f dans le forum Électronique
    Réponses: 22
    Dernier message: 19/10/2007, 16h24
  2. Bouton poussoir passant !
    Par invitefde2ee87 dans le forum Électronique
    Réponses: 26
    Dernier message: 27/05/2007, 23h21
  3. Bouton-poussoir pourquoi ?
    Par Fistos dans le forum Matériel - Hardware
    Réponses: 7
    Dernier message: 06/08/2006, 00h00
  4. bouton poussoir
    Par invited0c72bcb dans le forum Électronique
    Réponses: 1
    Dernier message: 02/04/2006, 23h55
  5. Bouton poussoir
    Par invite4d36e559 dans le forum Électronique
    Réponses: 4
    Dernier message: 23/06/2005, 15h37
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...