p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité de passage
    Inscrit en
    juin 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 36
    Points : 2
    Points
    2

    Par défaut [PIC 16F887] Dé électronique

    Bonjour,

    Je débute dans les microcontroleurs avec PICkit2 de microchip.
    Il s'agit d'un PIC 16F887.
    J'essaie de faire un programme avec MPLAB pour faire un dé électronique.
    Voici le programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #include <htc.h> 
    
    
    char a;
    char resultat;
    
    //-------------FONCTION HASARD----------------
    char hasard(void)
    {
    	do{a=a+1; if(a==5) a=1;}
    	while(TMR0>0);
    	return (a);	
    }
    
    
    //-------------Fonction principale-------------
    void main(void)
    {
    		PORTD = 0;
    		TRISD = 0b11110000;
    		OPTION = 0b11000111;
    		for(;;){
    				if(1)
    				{
    					resultat = hasard();
    					PORTD = 0;
    					if(resultat==1) RD0=1;
    					if(resultat==2) RD1=1;
    					if(resultat==3) RD2=1;
    					if(resultat==4) RD3=1;						
    				}		
    		}	 
    }
    Mais quand j'éxécute, pas d'erreur mais ça ne marche pas. C'est une carte 44pin. C'est le compilateur HI-TECH que j'utilise.

    Voici les docs :
    ww1.microchip.com/downloads/en/DeviceDoc/41291F.pdf

    http://ww1.microchip.com/downloads/e...Doc/41296a.pdf

    Merci de voir ce qui ne va pas dans mon programme.
    Merci.

  2. #2
    Membre chevronné

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : octobre 2008
    Messages : 419
    Points : 789
    Points
    789

    Par défaut

    Salut,
    Ça fait longtemps que je n'ai pas touché un PIC, mais comme personne ne répond, je me lance... ( Je demande donc vôtre indulgence... )

    Citation Envoyé par crow56 Voir le message
    quand j’exécute, pas d'erreur mais ça ne marche pas.
    J'ai l'impression que la fonction "hasard" ne s'arrête jamais!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    do {
    a=a+1;
    if(a==5) a=1;
    } while(TMR0>0);
    Je crois que le test "TMR0>0" ne peut renvoyer false que si tu tombes pile au moment ou TMR0 est égal à zéro, si non, il renvoie toujours true. Le TMR0 n'est-il pas toujours positif? Vérifie si dans htc.h, TMR0 est unsigned ou signed.

    Une autre chose attire mon attention. Pourquoi écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for(;;) {
    	if(1) {
    		resultat = hasard();
    		PORTD = 0;
    		if(resultat==1) RD0=1;
    		if(resultat==2) RD1=1;
    		if(resultat==3) RD2=1;
    		if(resultat==4) RD3=1;						
    	}		
    }
    alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for(;;) {
    		resultat = hasard();
    		PORTD = 0;
    		if(resultat==1) RD0=1;
    		if(resultat==2) RD1=1;
    		if(resultat==3) RD2=1;
    		if(resultat==4) RD3=1;							
    }
    fonctionne aussi bien. J'ai du mal à saisir l'intérêt du "if(1)"!! Peut-être remplace-tu le 1 par un test sur l'état d'une broche pour démarrer et arrêter le dé.
    Fonctionnalité forum : balise LATEX pour inclure des formules mathématiques

    Article 12 of the United Nations Universal Declaration of Human Rights states: “No one shall be subjected to arbitrary interference with his privacy, family, home or correspondence, nor to attacks upon his honour and reputation. Everyone has the right to the protection of the law against such interference or attacks.”

  3. #3
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2011
    Messages : 1
    Points : 1
    Points
    1

    Par défaut

    Bonjour, serai-il possible que tu m'envoies tous les fichiers concernant le projet. source et différents sous programmes. merci

Discussions similaires

  1. [PIC 16F887] Erreur de compilation
    Par swifer dans le forum MPLAB
    Réponses: 2
    Dernier message: 02/02/2012, 16h04
  2. FFT avec PIC 16F887 + uM FPU V3.1
    Par issa141 dans le forum Embarqué
    Réponses: 4
    Dernier message: 05/04/2011, 16h21
  3. Réponses: 5
    Dernier message: 06/05/2010, 09h41
  4. [PIC] Enregistrement de données permanentes
    Par Grulou dans le forum Autres architectures
    Réponses: 6
    Dernier message: 15/03/2004, 19h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo