comment utilise les fontions delay() pour HI-TEHC PICC compilateur
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

comment utilise les fontions delay() pour HI-TEHC PICC compilateur



  1. #1
    LABTOOL48

    comment utilise les fontions delay() pour HI-TEHC PICC compilateur


    ------

    voici mon programme pour clignoter une led mais je ne sais pas comment utiliser les fonction delay_ms() et delay_us() qui se trouve dans le fichier pic.h si quel qu'un peut m'aider
    #include <htc.h>
    #define _XTAL_FREQ 4000000
    /****************************** ****************************** ******************/
    __CONFIG (XT & WDTDIS & PWRTEN & BORDIS & WRTEN & LVPDIS & DUNPROT & DEBUGDIS);

    # define led RB2

    void main(void)
    {
    TRISB = 0b00000000; // portb en sortie
    while(1)
    {
    led = 1;
    _delay(10000);
    led = 0;
    }
    }
    et voici les fonctions declaré dans le fichier pic.h
    /****************************** ****************************** ****/
    /* Built-in delay routine */
    /****************************** ****************************** ****/
    #pragma inline(_delay)
    extern void _delay(unsigned long);
    // NOTE: To use the macros below, YOU must have previously defined _XTAL_FREQ
    #define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))
    #define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))
    #endif
    merci d'avance

    -----
    Dernière modification par LABTOOL48 ; 27/03/2010 à 09h11.

  2. #2
    invite1cd8f19a

    Re : comment utilise les fontions delay() pour HI-TEHC PICC compilateur

    __CONFIG (XT & WDTDIS & PWRTEN & BORDIS & WRTEN & LVPDIS & DUNPROT & DEBUGDIS);
    c'est quoi le mot de configuration que t'a utilise ??

  3. #3
    RISC

    Re : comment utilise les fontions delay() pour HI-TEHC PICC compilateur

    Salut,

    Les deux #define te montre la syntaxe :
    #define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))
    #define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))

    Il te suffit d'utiliser ces macros comme suit :
    Code:
    __delay_us(50);        // attendre 50us
    __delay_ms(15);       // attendre 15ms
    a+

  4. #4
    LABTOOL48

    Re : comment utilise les fontions delay() pour HI-TEHC PICC compilateur

    bonjour et merci pour ta reponse

    mais c'est le meme probleme avec la fonction __delay_ms(50); la led ne clignote pas il reste toujour allumé

    #include <htc.h>
    #define _XTAL_FREQ 4000000
    /****************************** ****************************** ******************/
    __CONFIG (XT & WDTDIS & PWRTEN & BORDIS & WRTEN & LVPDIS & DUNPROT & DEBUGDIS);
    /****************************** ****************************** ******************/
    /* main prog */
    /****************************** ****************************** ******************/
    # define led RB2

    void main(void)
    {
    TRISB = 0b00000000; // portb en sortie
    while(1)
    {
    led = 1;
    __delay_ms(50);
    led = 0;
    }
    }

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

    Re : comment utilise les fontions delay() pour HI-TEHC PICC compilateur

    augmente la temporisation car ca peut etre qu'elle clignote mais on arrive pas a suivre son rythme donc fait par exemple 100 ms o plus comme ca pour etre sur est ce que le prob vient de la temporisation ou bien juste l'effet visuel????

  7. #6
    LABTOOL48

    Re : comment utilise les fontions delay() pour HI-TEHC PICC compilateur

    mon programme il fonction bien en simulation je pense que mon problem vient de la ligne de __CONFIG un bit male positionné ou bien le quoirtz pas bien define
    Images attachées Images attachées  

  8. #7
    invite7a49d0d5

    Cool Re : comment utilise les fontions delay() pour HI-TEHC PICC compilateur

    Bonsoir,

    j'ai lu ton programme et je vois :
    Code:
    while(1)
    {
    led = 1;
    __delay_ms(50);
    led = 0;
    }
    si on le "décompose", ça donne :
    Code:
    while(1)
    la led s'allume
    on "attend" 50ms
    la led s'éteint
    il manque un "délai"...pour avoir le temps de "voir" la led éteinte...
    un exemple fonctionnel:
    Code:
    while(1)
    la led s'allume
    on "attend" 500ms
    la led s'éteint
    on "attend" 500ms
    et là ça clignotera...à 1Hz environ...
    cad visible... car 50ms c'est léger...
    pour y voir quelque chose d'évaluable...

    bon'dimanche zà toutes zé tous,
    56454445
    3B4F29
    ______________________________ __________
    46554D4552204E4520545545205041 53203B4F29

  9. #8
    invite7a49d0d5

    Cool Re : comment utilise les fontions delay() pour HI-TEHC PICC compilateur

    re ;O]

    après, les "vrais" pros, ils utilisent une interruption
    pour faire clignoter leur led ;O] à la µs pret ;O]

    comme là (post #18):
    http://forums.futura-sciences.com/el...pic16f690.html

    re-bon'dimanche zà toutes zé za tous,
    vede
    ;O]
    ______________________________ _______
    c'est trop fatigant de coder les dictons en ascii ;O]

  10. #9
    invite7a49d0d5

    Cool Re : comment utilise les fontions delay() pour HI-TEHC PICC compilateur

    rere ;O]

    exemple précédent que l'on pouvait encore simplifier:

    Code:
    sub procedure interrupt   
       PIR1.TMR1IF = 0     ' réactive interrupt sur TMR1 (remet le flag à 0)
       PortB = PortB + 1   ' et fait clignoter la led
    end sub
    '
    main:
      ' désactiver ADC, mettre PortB en sorties, puis :
      T1CON  =   %110001    ' démarre TMR1, avec PreScaler = 8
      INTCON = %11000000    ' activation interruptions périphériques
      PIE1   = %00000001    ' activation interruption du TMR1
      '
      while true  '
        nop
      wend

  11. #10
    LABTOOL48

    Thumbs up Re : comment utilise les fontions delay() pour HI-TEHC PICC compilateur

    Citation Envoyé par vede Voir le message
    rere ;O]

    exemple précédent que l'on pouvait encore simplifier:

    Code:
    sub procedure interrupt   
       PIR1.TMR1IF = 0     ' réactive interrupt sur TMR1 (remet le flag à 0)
       PortB = PortB + 1   ' et fait clignoter la led
    end sub
    '
    main:
      ' désactiver ADC, mettre PortB en sorties, puis :
      T1CON  =   %110001    ' démarre TMR1, avec PreScaler = 8
      INTCON = %11000000    ' activation interruptions périphériques
      PIE1   = %00000001    ' activation interruption du TMR1
      '
      while true  '
        nop
      wend
    le but ici c'est pas question de clignoter la led mais c'est pour l'utilisation le la fonction delay() et merci bcp bcp c'est a grasse a ta reponse que ma led clignoté ce matin

Discussions similaires

  1. [Divers] TPE Comment utilisé les vertus de la lavande?
    Par invitef87a0540 dans le forum Biologie
    Réponses: 0
    Dernier message: 26/11/2009, 16h59
  2. tipe sur les rotatives que l'on utilise pour les journaux
    Par invite6fca2f6e dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 04/11/2008, 15h00
  3. Environnement HI-TECH C HI-TIDE-Compilateur PICC 18
    Par jorg1n dans le forum Électronique
    Réponses: 3
    Dernier message: 12/09/2008, 14h40
  4. Compilateur C pour les pic
    Par invite42dae262 dans le forum Électronique
    Réponses: 5
    Dernier message: 12/04/2007, 18h04
  5. Besoin d'aide pour le compilateur C SDCC et les PIC18
    Par invite87be5ae9 dans le forum Électronique
    Réponses: 4
    Dernier message: 14/05/2006, 20h00
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...