IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MPLAB Discussion :

[PIC 16F887] Dé électronique


Sujet :

MPLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Points : 29
    Points
    29
    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 éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    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é.

  3. #3
    Nouveau Candidat au Club
    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