programme tourne en boucle alors qu'il n'y a pas de while
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

programme tourne en boucle alors qu'il n'y a pas de while



  1. #1
    invitedb9b1ced

    programme tourne en boucle alors qu'il n'y a pas de while


    ------

    Bonjour,

    Je débute dans le domaine des PIC18 (18F14K50 dans mon cas) que je programme sous MPLAB avec le compilateur C18 (pour voir le résultat j'utilise la simulation sous Isis).

    Pour commencer j'ai fait un classique chenillard dont voici le programme :

    Code:
    unsigned char Cycle[9] = {0,1,2,4,8,16,32,64,128};
    unsigned char i;
    	
    void delay (int Cycles)
    {
      int k;
    
      for (k = 0; k < Cycles; k++)
        ;
    }
    
    void main (void)
    {
    	TRISC = 0x00;	//le port C tout en sorties
    	
    	for ( i=0; i<9; i++)
    	{
    		PORTC = Cycle[i];
    		delay (10000);
    	}
    
    }
    Le principe est simple : j'applique chaque mot du tableau au port C.
    Par contre, quand je simule sous ISIS, le programme tourne en boucle et je n'arrive pas à comprendre pourquoi alors que je n'ai pas mis de while ou tout autre ligne demande de reboucler au début...

    Merci par avance.

    -----

  2. #2
    invite855cd7fb

    Re : programme tourne en boucle alors qu'il n'y a pas de while

    Comme il n'a plus de programme a exécuter et que tu ne l'arrête pas, ton pic plante puis reboot.
    mets un "sleep" (ou qqch du genre) a la fin et hop, il va se mettre en veille définitivement, donc s'arrêter.

  3. #3
    thundertom

    Re : programme tourne en boucle alors qu'il n'y a pas de while

    pas sur que ça passe avec le sleep...en principe pour que le PIC "parte" en sleep il faut qu'au moins une source d'intéruption capable de le réveiller soit paramétrée.

    mais par principe, un programme principal est toujours une boucle infinie.
    quel est le but de n'effectuer qu'une fois ton bout de code?
    Fabricando fit faber

  4. #4
    invitedb9b1ced

    Re : programme tourne en boucle alors qu'il n'y a pas de while

    Bonjour,


    @ MiGaNuTs : ou un " while (1);" et ça restera en suspend à cette ligne tant qu'il n'y aura pas d'événement extérieur.

    @ thundertom : aucun intérêt en particulier de ne faire qu'une fois le code. Mais après avoir passé de longues heures sur des programmes en VB.Net , je n'ai pas l'habitude de voir ma fonction principale reboucler à sa première ligne ...

    Il suffisait d'intégrer ce petit détail, merci à vous !

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

    Re : programme tourne en boucle alors qu'il n'y a pas de while

    Citation Envoyé par amoniaque Voir le message
    Bonjour,


    @ MiGaNuTs : ou un " while (1);" et ça restera en suspend à cette ligne tant qu'il n'y aura pas d'événement extérieur.
    Un while(1) ne laisse pas le processeur en suspend, il mouline à fond, consommant allègrement des watts. Ca n'a rien à voir avec un mode de veille.

    @ thundertom : aucun intérêt en particulier de ne faire qu'une fois le code. Mais après avoir passé de longues heures sur des programmes en VB.Net , je n'ai pas l'habitude de voir ma fonction principale reboucler à sa première ligne ...
    Et pourtant un programme VB boucle mais c'est transparent pour le programmeur lambda. Simplement, en utilisation de base, on ne programme que des évènements.

Discussions similaires

  1. [Blanc] LV Bosch SGI45M16EU : programme s'arrête alors qu'il reste 38' !
    Par invite8d5edfcf dans le forum Dépannage
    Réponses: 1
    Dernier message: 02/01/2010, 15h01
  2. Réponses: 7
    Dernier message: 06/07/2009, 14h47
  3. Petit exercice plus compliqué qu'il n'y parait...
    Par inviteb9eb507a dans le forum Epistémologie et Logique (archives)
    Réponses: 53
    Dernier message: 20/02/2008, 17h43
  4. [Blanc] bouton programme qui tourne pas
    Par invite1b7dec00 dans le forum Dépannage
    Réponses: 6
    Dernier message: 01/08/2007, 22h17
  5. Messages d'envois manqués... alors qu'il n'y a pas d'envoi!!
    Par invitee240f783 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 7
    Dernier message: 09/07/2006, 18h56
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...