Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Timer avec un 18F très bizarre



  1. #1
    VIIV

    Timer avec un 18F très bizarre


    ------

    Bonjour,
    J'ai un quartz de 20MHz et un PIC 18F2455, j'utilise C18 et les libraires de timer fournies avec. J'ai crée une fonction:

    Code:
    void delay_ms(unsigned int nb_milisecondes)
    {
    	unsigned int i;
    	unsigned int v_timer = 0;
    	
    	OpenTimer0(TIMER_INT_OFF & T0_16BIT & T0_SOURCE_INT & T0_PS_1_1);	
    
    	for(i=0;i!=nb_milisecondes;i++)
    	{
    		WriteTimer0(0);
    
    		while(v_timer < 5000)	// 5000 * 200e-9 = 1e-3[s]
    		{
    			v_timer = ReadTimer0();		// Lis l'etat du timer
    		}
    	}
    	CloseTimer0();	
    }
    Mais voila, quand je met delay_ms(1), j'ai pas ma 1ms d'attente, pareil pour tous les autres nombres, j'ai une attente mais elle est beaucoup plus courte que ce que je souhaite.
    Alor si vous voyez une erreur quelque part...

    -----

  2. Publicité
  3. #2
    sdec25

    Re : Timer avec un 18F très bizarre

    Salut.
    Je viens d'essayer ton programme sur le simulateur MPSIM et il fonctionne bien. Comment tu fais pour mesurer le temps écoulé ?

  4. #3
    VIIV

    Re : Timer avec un 18F très bizarre

    A l'oeil, (J'ai pas d'oscillo chez moi), de toute façon c'est flagrant, je met delay_ms(5000), et mes LED s'allument a l'instant que je branche le PIC. Autrement je met le prescaler a 256 et je met delay_ms(50000) et la, ça dure peut-être 300ms. (Toujours a l'oeil)

  5. #4
    sdec25

    Re : Timer avec un 18F très bizarre

    Citation Envoyé par VIIV Voir le message
    A l'oeil, (J'ai pas d'oscillo chez moi), de toute façon c'est flagrant, je met delay_ms(5000), et mes LED s'allument a l'instant que je branche le PIC.
    quand je met delay_ms(1), j'ai pas ma 1ms d'attente
    Je suppose que c'est aussi à l'œil que tu as vu qu'avec delay_ms(1) tu n'as pas 1ms. Moi j'ai testé au simulateur et il y a bien un délai de 1ms. Par contre pour nb_millis > 1 on a aussi 1ms
    Avec un prescaler de 256 on a environ 256 ms

    Si tu initialisais v_timer à 0, ou que tu mettais le test while après que v_timer soit modifiée ? En effet v_timer reste à 5000 quand on remet le timer à 0.

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    VIIV

    Re : Timer avec un 18F très bizarre

    Citation Envoyé par sdec25 Voir le message
    Si tu initialisais v_timer à 0, ou que tu mettais le test while après que v_timer soit modifiée ? En effet v_timer reste à 5000 quand on remet le timer à 0.
    Ah ouais pas con

Discussions similaires

  1. Protocole USB avec PIC 18F
    Par VIIV dans le forum Électronique
    Réponses: 7
    Dernier message: 09/09/2008, 21h34
  2. Problème très bizarre...
    Par jorg1n dans le forum Électronique
    Réponses: 0
    Dernier message: 02/04/2008, 10h29
  3. Panne très bizarre sur machine à laver !
    Par stephane5 dans le forum Dépannage
    Réponses: 27
    Dernier message: 14/09/2006, 22h58
  4. un son très bizarre
    Par thebiboun34 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 4
    Dernier message: 17/01/2005, 13h27
Découvrez nos comparatifs produits sur l'informatique et les technologies.