un for qui n'en finit pas
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

un for qui n'en finit pas



  1. #1
    invite659e17ac

    un for qui n'en finit pas


    ------

    Bonjour à tous,

    Voici mon problème, bizarroïde..

    J'exécute une boucle for (voir programme), et le problème, c'est que j'ai l'impression que mon microcontrôleur arrive pas à en sortir, pourtant ce n'est qu'un p'tit for...

    Code:
    void main (void)
    {
    	Config_interrupt_0();
    	readcan=0;
     	Efface_lcd();
     	Init_lcd();
    	aff_page (start11,start12,start13,start14);
    		while(1)
    		 {
    			for(i=0;i=50;i++)
    			 {
    			 a=1;
    			 Tempo_us(readcan+25); 
    			 a=0;
    			 Tempo_ms(15);
    			 }
    		a=0;
    		Tempo_ms(500);
                    }
    }
    Il effectue bien les impulsions, mais à aucun moment je vois mes 500 ms de repos.... Voyez-vous une erreur?

    Merci

    -----

  2. #2
    invitefae3ce14

    Re : un for qui n'en fini pas

    Je vois pas la déclaration de ta variable i .

    Elle est pas modifiée ailleurs des fois?

  3. #3
    invite659e17ac

    Re : un for qui n'en fini pas

    Bien vu, elle était utilisé ailleurs...

    Mais le problème ne change pas..

    Je l'ai remplacé par y, et i était déclaré, tout comme y maintenant:

    Code:
    int readcan, y;

  4. #4
    invite68e98c84

    Re : un for qui n'en fini pas

    Je comprend pas pourquoi tu fait "Tempo_us(readcan+25);" si readcan est toujours à 0 !

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

    Re : un for qui n'en fini pas

    Readcan est le résultat d'une conversion analogique numérique. C'est pour une commande servomoteur.

    Qu'il y soit ou non ne change en rien mon problème, malheureusement..

  7. #6
    invite68e98c84

    Re : un for qui n'en fini pas

    Oui mais ton for étant si "simple", tes déclarations de variable refaite ! Ton programme arrive t-il jusqu'au For ??

  8. #7
    invitefae3ce14

    Re : un for qui n'en fini pas

    T'as bien changé dans le for? T'as bien remplacé i par y ?

    Ca peut paraitre con, mais à force de se prendre la tête des fois on oubli des choses simples

  9. #8
    invite659e17ac

    Re : un for qui n'en fini pas

    Ouaip, tout est changer, modifier etc.. La déclaration refaite, et le for aussi... Et même readcan viré..

    Code:
    		for(y=0;y=50;y++)
    			 {
    			 a=1;
    			 Tempo_us(25); 
    			 a=0;
    			 Tempo_ms(15);
    			 }
    		a=0;
    		Tempo_ms(500);

  10. #9
    invite659e17ac

    Re : un for qui n'en fini pas

    Han....

    Je vous met la solution...

    Code:
    		for(y=0;y<=50;y++)
    			 {
    			 a=1;
    			 Tempo_us(readcan+25); //Donne entre 0.7us et 1.5ms selon readcan (entre 0 et 25)
    			 a=0;
    			 Tempo_ms(15);
    			 }
    		a=0;
    		Tempo_ms(500);
    Voilà le problème... apparemment il supporte pas les "=" mais plutot les "<="...

    Merci quand même

  11. #10
    invitefae3ce14

    Re : un for qui n'en fini pas

    Heu oui ... effectivement ...

    Je comprend même pas qu'il ai fonctionné avant en fait ... vu que la condition = 50 était pas vérifiée ...

  12. #11
    Jack
    Modérateur

    Re : un for qui n'en finit pas

    Voilà le problème... apparemment il supporte pas les "=" mais plutot les "<="...
    il supporte très bien les "=". En revanche, il te manque encore de l'expérience.
    Je rappelle que tant que la 2ème expression est vraie (en l'occurrence y=50) la boucle est exécutée.

    Or en C une expression ayant pour valeur 0 est considérée comme fausse, vraie sinon.
    Quand tu écris y=50, tu affectes la valeur 50 à y. La valeur est non nulle, donc l'expression est considérée comme vraie => la boucle ne finira jamais.

    CQFD.

    A+

  13. #12
    invite659e17ac

    Re : un for qui n'en finit pas

    Merci pour l'information Jack, à vrai dire, je connais le C depuis... 3 mois environ, donc oui, l'expérience me fait défaut.

    Mais maintenant, tout est plus clair

  14. #13
    stefjm

    Re : un for qui n'en fini pas

    Citation Envoyé par Jehudiel Voir le message
    Voilà le problème... apparemment il supporte pas les "=" mais plutot les "<="...
    Bonjour,
    Ne pas confondre = (affectation) et == (comparaison) en C.
    Un grand classique.
    Cordialement.
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

Discussions similaires

  1. Centre de symétrie qui n'en est pas un !!!
    Par invitec1b6da07 dans le forum Mathématiques du collège et du lycée
    Réponses: 13
    Dernier message: 22/05/2009, 23h11
  2. [Blanc] LV Fagor : ne finit pas son cycle !
    Par inviteab712090 dans le forum Dépannage
    Réponses: 0
    Dernier message: 15/04/2009, 10h21
  3. Tchernobyl : qui n'en a pas peur?
    Par invite8915d466 dans le forum Environnement, développement durable et écologie
    Réponses: 70
    Dernier message: 19/06/2006, 14h56
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...