Pause en secondes ; Compilateur HI-tech
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Pause en secondes ; Compilateur HI-tech



  1. #1
    invite6cb06424

    Pause en secondes ; Compilateur HI-tech


    ------

    Bonsoir a tous

    Récemment j'ai cherché un compilateur C pour PIC (18F) qui fonctionne sur Linux, j'ai donc trouvé Hi-Tech PICC qui me convient très bien.

    Le problème c'est pour les pauses. Comme j'utilise un écran il me faut des petites pauses (us et ms) que j'ai pu réaliser avec :

    Code:
    #define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))
    #define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))
    que je trouve d'ailleurs bête dans le sens ou il existe des routines intégrés au compilateur qui ne fonctionnent pas

    Par exemple Delay10KTCYx(10) ne fonctionne pas, il me dit comme erreur du genre "conflit de duplication" ou quelque chose qui veut dire la même chose.

    Cela dit, je trouve quand meme beaucoup plus pratique de faire des pauses en ms ou us plutot qu'en nombres de cycle.

    Enfin bref, du coup, Comment utilisé correctement et convenablement sans ajouter des lignes de code ou avoir des erreur a la compilation? Ou encore existe t-il une fonction qui permet de faire des pauses de quelques secondes?

    Merci d'avance

    -----

  2. #2
    Forhorse

    Re : Pause en secondes ; Compilateur HI-tech

    Faire une pause de quelque secondes dans un programme ce n'est plus une pause, c'est un bug !
    Il est idiot de bloquer inutilement le processeur dans des boucles qui ne servent à rien alors qu'il pourrait faire autre chose. Faire ça c'est produire ce que j'appel "du code de poney" (programmer avec des sabots)
    Pour compter le temps, les timers et leurs interruptions sont fait pour ça.
    Les "pauses" en µs ou ms, ne sont a utiliser que quand on doit générer ou décoder des signaux exigeant un timing précis.
    Tout projet flou conduit à une connerie précise !

  3. #3
    invite6cb06424

    Re : Pause en secondes ; Compilateur HI-tech

    Bonsoir Forhorse, je suis totalement d'accord avec ce que vous dites, les longues pauses ce sont des bugs, mais a vrai dire, dans mon cas non, il n'y en aura qu'une seule au démarrage et c'est tout. Je m'explique :

    Connecté a mon PIC, j'ai un écran LCD, a cet ecran je compte y afficher une présentation puis attendre quelques secondes, pour ensuite faire ce pourquoi il est dédié. C'est juste pour bloqué un affichage. Pendant lequel le PIC ne fera absolument rien d'autre c'est exact. La "vrai" gestion des E/S arrivent après.

    Mais sinon, il est exact que les longues pendant le déroulement normal du programme pose souvent de nombreux problème

  4. #4
    vincent66

    Re : Pause en secondes ; Compilateur HI-tech

    Bonsoir,
    Un peu de hardware rajouté pourrait peut-être simplifier les choses : ne serait-il pas possible d'utiliser un timer avec un quartz à 32768 Hz ?
    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

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

    Re : Pause en secondes ; Compilateur HI-tech

    Je m'en servirais souvent je trouve que ca serait vraiment utile mais dans mon cas c'est juste pour la "présentation" uniquement, je trouve du coup que ca fait usine a gaz pour un petit truc

    Au final je me dit que je peux faire une simple boucle de 10 * 100 ms mais faut-il déjà faire une pause de 100ms

    Et la...

    Merci a vous

  7. #6
    RISC

    Re : Pause en secondes ; Compilateur HI-tech

    Salut Punky,

    Peux-tu faire voir le message d'erreur que tu obtiens avec les librairies de délai ?
    As-tu déclarer par hasard 2 fois le fichier header (delay.h je crois) ?
    Tu peux également utiliser la version gratuite du compilateur XC8 version Linux qui possède je crois également des librairies de délai

    a+

  8. #7
    invite6cb06424

    Re : Pause en secondes ; Compilateur HI-tech

    Salut RISC

    Alors je viens de réessayer avec Delay10KTCYx(2) et j'ai toujours le soucis en ne déclarant pas <delays.h> :

    Code:
    error: conflicting declarations for variable "_Delay10KTCYx"
    C'est le meme problème lorsque je déclare <delays.h>

    Le tout en supprimant toutes les lignes de codes et autres fichiers inutile pour le test.
    Donc non, je n'ai pas déclaré 2 fois le fichier header

    PS: Au passage pourquoi le underscore a chaque fois devant l'erreur ?

  9. #8
    RISC

    Re : Pause en secondes ; Compilateur HI-tech

    Salut,

    Je viens de regarder le manuel du compilateur XC8 v1.01 et je trouve plusieurs fonctions de delai :
    ========================
    #include <xc.h>
    void _delay(unsigned long cycles);
    ========================

    __delay_ms(x) // request a delay in milliseconds
    ========================
    __delay_us(x) // request a delay in microseconds
    ========================

    Certaines fonctions ont un seul _ d'autres 2 __

    a+

  10. #9
    invitefa96bd8f

    Re : Pause en secondes ; Compilateur HI-tech

    tu pourras peut etre t'en inspirer, quand j'ai un petit doute sur la vitesse de fonctionnement de mon PIC, je fais ca :
    boucle:

    LATBbits.LATB5 = 0;
    _asm
    NOP
    NOP //4*NOP + CLEAR RB7 = 5 cycles
    NOP
    NOP
    _endasm
    LATBbits.LATB5 = 1;
    _asm
    NOP //2*NOP + SET RB7 + GOTO = 5 cycles
    NOP
    _endasm
    goto boucle; //10 cycles, soit 40 temps d'horloge. Mesure de la période du signal, a diviser par 40 pour avoir la periode de l'oscillateur

    (J'ai pas vérifié si les commentaires sont rigoureux/exacts)

Discussions similaires

  1. Assembleur et Compilateur Hi tech
    Par invite50cc55df dans le forum Électronique
    Réponses: 12
    Dernier message: 20/12/2011, 23h05
  2. Erreur sur le compilateur hi-tech
    Par LABTOOL48 dans le forum Électronique
    Réponses: 3
    Dernier message: 21/05/2010, 04h39
  3. pic et compilateur hi-tech
    Par invite50cc55df dans le forum Électronique
    Réponses: 2
    Dernier message: 19/07/2009, 17h33
  4. Environnement HI-TECH C HI-TIDE-Compilateur PICC 18
    Par invite3c35244f dans le forum Électronique
    Réponses: 3
    Dernier message: 12/09/2008, 15h40
  5. petit problème avec le compilateur Hi-tech
    Par invite45724da5 dans le forum Électronique
    Réponses: 14
    Dernier message: 02/09/2008, 12h59
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...