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

Delay_ms



  1. #1
    marou12

    Delay_ms


    ------

    Bonjour, je suis un étudiant informatique j'essaye à communiquer avec pic18f2550 via USB pour saisir un temps , mon probléme c'est que la fonction delay_ms ne supporte pas un temps assez long, comment faire SVp
    Merci

    -----

  2. #2
    Tonave72

    Re : Delay_ms

    Salut et bienvenu,

    Une solution toute simple tu recodes toi même cette fonction avec des timers y'en à pas pour 15 ans... A moins que tu ai accès aux sources de ta fonction delay là tu peux modifier et faire des "boucles" dans ta fonction. En tout cas, je sais que quand je code ce genre de chose, je préfère le coder moi même pour avoir la main mise dessus.

    Bon courage!
    Rien ne se perd, rien ne se crée, tout se transforme. Lavoisier

  3. #3
    MiKL.66

    Re : Delay_ms

    Bonjour,

    Delay_ms est justement prévu pour des délais très court.

    Pendant ce temps d'attente, tu ne fais rien d'autre ... (à part les interruptions).

    Donc si tu veux un temps plus long, il faut utiliser les timers.
    Personnellement, je me débrouille pour faire une interruption timer à 1ms.
    Il n'y a plus qu'a compter jusqu'à 100 pour avoir 100ms, jusqu'à 1000 pour avoir 1 seconde, etc ...

    Si ce n'est pas assez clair, dis moi avec quel compilateur tu bosses et je vois si je peux te faire un exemple.

    Mickael

  4. #4
    marou12

    Re : Delay_ms

    @ MiKL.66, merci pour votre aide
    j'utilise mikroc .

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

    Re : Delay_ms

    Ce n'est pas mon compilateur préféré, mais pour ne pas bosser pour rien, peux tu poster ou m'envoyer par mail ce que tu as déjà fait.

    Sinon, faut m'en dire un peu plus :
    - Utilises tu un quartz ou l'oscillateur interne et m'indiquer la fréquence
    - utilises tu déjà un timer (lequel)

  7. #6
    marou12

    Re : Delay_ms

    j'utilise la bibliotheque HID_USB pour lire et écrire via le port USB et je vais utiliser ce temps dans la fonction delay_ms. est ce que je dois écrire une fonction intermédiaire qui va faire le calcul de temps puis je fais appel à la fonction delay_ms ???

  8. #7
    marou12

    Re : Delay_ms

    j'utilise un quartz 48mhz

  9. #8
    MiKL.66

    Re : Delay_ms

    Avec si peu d'élément, je ne peux pas trop t'aider ...

    Sinon, essais d'appeler la fonction delay plusieurs fois !

  10. #9
    marou12

    Re : Delay_ms

    ok, voilà une partie du code dans laquelle je dois stockér ce qui est lu par USB puis le convertir en seconde et après appeler la fonction delay_ms
    unsigned char readbuff[64] absolute 0x500;
    unsigned char writebuff[64] absolute 0x540;
    char cnt;
    char kk;
    void interrupt()
    {
    USB_Interrupt_Proc();
    }
    void main(void)
    {
    ADCON1 |=0x0F;
    CMCON |=7;
    HID_Enable(&readbuff,&writebuf f);
    while(1)
    {
    while(!HID_Read());
    for(cnt=0;cnt<64;cnt++);
    writebuff[cnt]=readbuff[cnt];
    while(!HID_write(&writebuff,64 ));
    }
    }

  11. #10
    Biname

    Re : Delay_ms

    Ce site génère un code delay en assembleur pour PIC

    http://www.piclist.com/techref/picli...egen/delay.htm

    Exemple 1000000 de secondes ... c'est assez ?


    ; Delay = 1e+006 seconds
    ; Clock frequency = 20 MHz

    ; Actual delay = 1000000 seconds = 5000000000000 cycles
    ; Error = 0 %

    cblock
    d1
    d2
    d3
    d4
    d1_4
    endc

    ;4999999999993 cycles
    movlw 0xD0
    movwf d1
    movlw 0x36
    movwf d2
    movlw 0x06
    movwf d3
    movlw 0xD6
    movwf d4
    movlw 0x6A
    movwf d1_4
    Delay_xx_0
    decfsz d1, f
    goto $+2
    decfsz d2, f
    goto $+2
    decfsz d3, f
    goto $+2
    decfsz d4, f
    goto $+2
    decfsz d1_4, f
    goto Delay_xx_0

    ;7 cycles
    goto $+1
    goto $+1
    goto $+1
    nop

    ; Generated by http://www.piclist.com/cgi-bin/delay.exe (December 7, 2005 version)
    ; Fri Jul 12 17:24:46 2013 GMT

Discussions similaires

  1. Problème avec pic16f84 fonction "delay_ms()"
    Par Montd'est dans le forum Électronique
    Réponses: 2
    Dernier message: 14/06/2008, 23h36
  2. PIC16F887 delay_ms() problème
    Par invitec6603a9c dans le forum Électronique
    Réponses: 4
    Dernier message: 01/06/2008, 09h29
Découvrez nos comparatifs produits sur l'informatique et les technologies.