Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Inscrit en
    juin 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 24
    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 :
    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 Bertrand
    Inscrit en
    octobre 2008
    Messages
    414
    Détails du profil
    Informations personnelles :
    Nom : Homme Bertrand
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : octobre 2008
    Messages : 414
    Points : 724
    Points
    724

    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 :
    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 :
    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 :
    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é.

    Nouvelle 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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •