programmation sur MikroC
Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

programmation sur MikroC



  1. #1
    Marouaa

    programmation sur MikroC


    ------

    Bonjour, je cherche à écrire un prg en mikroC qui me permet d'allumer une led ( sur RB0)seulement si j'appuie sur le boutton poussoir (sur RA0) 5 fois

    si qqn pourrait m'aider

    -----

  2. #2
    bisou10

    Re : programmation sur MikroC

    C'est une blague ?

    Donne nous ton code !

  3. #3
    Marouaa

    Unhappy Re : programmation sur MikroC

    en fait, je sais pa comment incrémenter à chaque fois que j'appuie sur le bouton poussoir; j'ai essayé pa mal de truc genre
    #define Bp porta.f0
    #define Led portb.f0

    void main() {

    portB=0;
    trisB=0x00;
    portA=0;
    trisA=0xFF;
    if (Bp==1) {
    Led=0;}
    Bp=i;
    i++;
    if (i==2){
    Led=0;}
    if (i==3) {
    Led=0;}
    if (i==4) {
    Led=0;}
    if (i==5) {
    Led=1;}
    if (i=6 )
    {i=1;} }

    mais ça marche pa, et à noter que je suis pa du tt pro dans ce domaine

  4. #4
    cyberdalek

    Re : programmation sur MikroC

    Salut,

    Je te conseille de relire attentivement des tutos sur la programmation C, et sur les pics également


    Pour faire un test en C si toto=1 il faut faire if (toto==1)

    De quel type est i? Quelle est sa valeur de départ?

    Donc tu incrémentes une variable, mais (meme si je connais pas mikroc) c'est qu'il faut boucler sinon tu ne vas l'incrémenter qu une fois, et encore si tu as le temps

    http://www.ltam.lu/cours-c/prg-c54.htm

    Apres si tu regardes ton code, tu verras (entre autre) que tu réinitilise ta variable à 1, mais tu n'allumes pas ton bouton .


    A lire

    http://www.mikroe.com/chapters/view/...rocontrollers/

    A lire aussi
    http://www.mikroe.com/chapters/view/...r-3-i-o-ports/

    Bon début

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

    Re : programmation sur MikroC

    bonjour,

    Quel type de PIC ?

    Essaie deja de faire tourner l'exemple de la librairie Button de MikroC
    Example reads RB0, to which the button is connected;
    on transition from 1 to 0 (release of button), PORTD is inverted:
    et apres , tu innoves...

  7. #6
    jonathan82

    Re : programmation sur MikroC

    Y a une lib avec une fonction qui va bien pour lire les BP dans MikroC... Et qui gère les rebonds !!! Vous vous rendez compte ma p'tite dame... ?
    Avec un if (bp==1), tu vas juste faire marrer les autres... Lol

    Faut déclarer le i avant de l'utiliser.
    Ensuite, tu fais un for pour boucler et tester ton BP...
    Faut aborder une meilleur approche structurelle MikroC ou pas.

  8. #7
    jonathan82

    Re : programmation sur MikroC

    Citation Envoyé par bisou10 Voir le message
    C'est une blague ?

    Donne nous ton code !
    +1

  9. #8
    Marouaa

    Re : programmation sur MikroC

    mercii pr vos réponses , juste je tiens à vs dire que le BP doit fonctionner en étant un compteur, c mon projet de stage, et je maitrise pas du tout la programmation
    le i je l'ai bien déclaré , le code que j'ai envoyé n'étais pas complet, voila merci et si vous avez une idée n'hesitez pas à m'informer, car on est ici pour apprendre jonathan

  10. #9
    jonathan82

    Re : programmation sur MikroC

    Oui, je sais bien que l'on est la pour apprendre, mais parfois, si on peux rire au passage... J'ai ris, je me suis montré taquin, mais j'ai tout de même apporté ma pierre à l'édifice...

    Si ton BP est en réalité une entrée, tu dois alors en effet pas mettre en oeuvre la libraire de BP de MikroC.

    if (Bp==1) Led=0;

    Bp=i; -> On va supposer que c'est 1 vu que tu le met à 1 à la fin
    i++;

    if (i==2) Led=0;

    if (i==3) Led=0;

    if (i==4) Led=0;

    if (i==5) Led=1;

    if (i==6 ) i=1;

    Tu travaille avec i et pas BP, donc ton programme la tourner en boucle en faisant simplement incrémenter i
    Tu perd un temps de comptage avec le i==6. Il parasite ton comptage initial et si tu démarre de 1, tu met que 4 coups pour arriver à 5

    while (BP!=1){}; //On attend que bp passe à 1.
    if (BP==1){
    i++;
    if (i==5) {
    led=1;
    i=0;
    } else {
    led=0;
    }
    }

    Un truc du genre devrait fonctionner, à froid...
    Dernière modification par jonathan82 ; 28/08/2014 à 06h42.

  11. #10
    invite03481543

    Re : programmation sur MikroC

    Bonjour,

    typiquement le genre de code qui ne fonctionnera pas (la led s'allumera au bout de 2,3... ou avec beaucoup de chance 5 appuis).

    Un bouton poussoir créé des rebonds qu'il convient de filtrer sans quoi le fonctionnement sera totalement erratique selon la qualité de l'appui variable selon chaque individu et de la qualité du bouton.
    Le principe est simple:

    -détection de l'appui par un changement de front (haut vers bas par exemple) cela peut se faire par polling ou par interruption (mode interruptif bien supérieur)
    -on décompte une tempo paramétrable dès le 1er changement d'état afin de ne pas prendre en compte d'autres appuis parasites, puis à la fin de cette tempo on valide appui=1.
    -cette variable sera incrémentée après chaque nouvel appui.
    -lorsque appui=5 on allume la led.

    La fonction anti-rebonds est indispensable.


    -

  12. #11
    Marouaa

    Re : programmation sur MikroC

    Mercii infiniment pour votre aide, là j'ai suivi un peu ce que vous m'avez dit, et ça marchais pas, du coup j'ai essayé un truc de ce genre
    #define Led portb.f0
    void main() {
    char test=5;
    portB=0;
    trisB=0x00;
    portA=0;
    trisA=0xFF;
    Led=0;
    OPTION_REG.F0=1;
    TMR0=0;
    do
    {
    if (TMR0==test)
    Led=1; }
    }

    ça marche tjrs pas, et il y a un msg d'erreur que j'arrive pas à m'en débarasser , sinon je croi que je ne suis pas loin, i hope so!

  13. #12
    invite03481543

    Re : programmation sur MikroC

    Normal que ça ne fonctionne pas, si tu veux te servir du timer il ne faut pas t'y prendre ainsi...

    -il faut configurer ton timer pour qu'il déborde au bout de x ms, par exemple 100ms, pour cela tu peux t'aider du logiciel suivant:

    http://www.mikroe.com/timer-calculator/


    Puis tu configures ton registre d'interruption pour t'en servir.
    Si tu patauges tu reviens ici, le mieux pour apprendre étant d'essayer avant d'avoir la solution toute cuite dans le bec.
    @+
    Dernière modification par HULK28 ; 28/08/2014 à 10h40.

  14. #13
    invite03481543

    Re : programmation sur MikroC

    Si tu précisais la référence de ton PIC se sera incontestablement un plus

  15. #14
    Marouaa

    Re : programmation sur MikroC

    je travaille avec le 16F84a

  16. #15
    Marouaa

    Re : programmation sur MikroC

    en fait c bon il marche, j'ai juste connecté la patte RA4 ( celle en rapport avec le timer0)avec le BP sur isis et ça marche, c était évident depuis l début :3 , merci infiniment

  17. #16
    paulfjujo

    Re : programmation sur MikroC

    bonjour,

    Cela fonctionne sur ISIS.. avec un BP ideal sans rebonds ..
    et en reel cela donne quoi ?

  18. #17
    Marouaa

    Re : programmation sur MikroC

    salut, j'ai juste essayé sur ISIS

Discussions similaires

  1. CAN programmation MikroC pic 16F876.
    Par Eyo92 dans le forum Électronique
    Réponses: 1
    Dernier message: 01/06/2013, 21h06
  2. probleme programmation mikroc (keypad)
    Par rose2013 dans le forum Électronique
    Réponses: 0
    Dernier message: 14/03/2013, 14h53
  3. programmation mikroc
    Par invite1a5b79cf dans le forum Électronique
    Réponses: 0
    Dernier message: 08/06/2012, 12h29
  4. programmation en C avec MikroC
    Par invite736476bb dans le forum Électronique
    Réponses: 4
    Dernier message: 09/03/2012, 22h37
  5. Programmation MIKROC
    Par IHCAAMEL dans le forum Électronique
    Réponses: 17
    Dernier message: 06/05/2011, 10h54
Découvrez nos comparatifs produits sur l'informatique et les technologies.