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

pic18F4550



  1. #1
    pseudomehdi

    pic18F4550


    ------

    bonsoir, j'ai voulu tester sur mon simulateur(isis) combien de temps le pic 18f4550 mettait pour exécuter l'opération x=SQRT(2), le résultat est 1.3ms avec une fréquence d'horloge de 20Mhz donc un cycle d'instruction de 0.2us, merci de me dire si c'est normale ou pas !

    -----

  2. Publicité
  3. #2
    RISC

    Re : pic18F4550

    Salut,
    a priori cela semble possible si...tu as utilisé des float ou double float comme operandes...
    un microcontroleur n'est pas fait pour faire des calculs en virgule flottante rapidement car il n'a pas de FPU intégrée
    a+
    Ma marotte ? les microcontrôleurs ;=)

  4. #3
    pseudomehdi

    Re : pic18F4550

    ah d'accord, merci
    Dernière modification par pseudomehdi ; 12/01/2016 à 00h35.

  5. #4
    paulfjujo

    Re : pic18F4550

    Bonsoir,


    un test sous MikroC


    Floating point in the mikroC PRO for PIC is implemented using the Microchip AN575 32-bit format (IEEE 754 compliant)
    .

    9902 cycles => 1,98 mS

    Code:
    double df1,df2; // 64 bits !
    
    df2=2.0;
    df1=sqrt(df2);
    
    meme resultat si usage de constante
    df1=sqrt(2;0);
    
    meme resultat si 
    float df1,df2 ;
    soit ton compilateur est bien plus performant, soit tu travailles avec du float 24 bits ?

  6. #5
    marti.dufoot

    Re : pic18F4550

    Salut

    J'ai l'habitude de programmer sur pic4520 (c'est la même famille que le tien), et il y a un diviseur de fréquence du quartz.
    En effet si tu mets un quartz externe de 20 Mhz, le processeur va travailler en réalité sous 5Mhz. (donc une période de 0.2us)

    Après peu être que c'est pas le cas du tiens.

    Vérifie quand même dans la doc et regarde si c'est pris en compte ou pas dans ton simulateur

    Mais ça parait bizarre qu'il fasse cette opération en un coup d'horloge
    Dernière modification par marti.dufoot ; 12/01/2016 à 19h11.

  7. A voir en vidéo sur Futura
  8. #6
    ranarama

    Re : pic18F4550

    bsr. Essaye de tester le second algo sur cette page (concerne les pic18F), l'auteur évoque 400 cycles soit une fusée par rapport à la fonction par défaut de ton compilateur
    http://www.piclist.com/techref/micro...qrt/sqrt32.htm

    sinon d'autre du mm genre en diverses résolutions : http://www.piclist.com/techref/micro...sqrt/index.htm

  9. Publicité
  10. #7
    pseudomehdi

    Re : pic18F4550

    Citation Envoyé par paulfjujo Voir le message

    soit ton compilateur est bien plus performant, soit tu travailles avec du float 24 bits ?
    c'est un 32 bits

  11. #8
    pseudomehdi

    Re : pic18F4550

    Citation Envoyé par ranarama Voir le message
    bsr. Essaye de tester le second algo sur cette page (concerne les pic18F), l'auteur évoque 400 cycles soit une fusée par rapport à la fonction par défaut de ton compilateur
    http://www.piclist.com/techref/micro...qrt/sqrt32.htm

    sinon d'autre du mm genre en diverses résolutions : http://www.piclist.com/techref/micro...sqrt/index.htm
    merci, mais mon compilateur c'est "ccs pic C compiler" il n'utiliser pas le langage assembleur!
    Dernière modification par pseudomehdi ; 13/01/2016 à 19h49.

  12. #9
    pseudomehdi

    Re : pic18F4550

    Citation Envoyé par ranarama Voir le message
    bsr. Essaye de tester le second algo sur cette page (concerne les pic18F), l'auteur évoque 400 cycles soit une fusée par rapport à la fonction par défaut de ton compilateur
    http://www.piclist.com/techref/micro...qrt/sqrt32.htm

    sinon d'autre du mm genre en diverses résolutions : http://www.piclist.com/techref/micro...sqrt/index.htm
    merci, mais mon compilateur c'est "ccs pic C compiler" il n'utiliser pas le langage assembleur!
    Dernière modification par pseudomehdi ; 13/01/2016 à 19h50.

  13. #10
    pseudomehdi

    Re : pic18F4550

    Citation Envoyé par marti.dufoot Voir le message
    Salut

    J'ai l'habitude de programmer sur pic4520 (c'est la même famille que le tien), et il y a un diviseur de fréquence du quartz.
    En effet si tu mets un quartz externe de 20 Mhz, le processeur va travailler en réalité sous 5Mhz. (donc une période de 0.2us)

    Après peu être que c'est pas le cas du tiens.

    Vérifie quand même dans la doc et regarde si c'est pris en compte ou pas dans ton simulateur

    Mais ça parait bizarre qu'il fasse cette opération en un coup d'horloge
    la fréquence d'horloge est bonne.

  14. #11
    ranarama

    Re : pic18F4550

    bsr.
    Tu peux surement trouver une directive permettant d'insérer de l'assembleur dans le code C le lisant le manuel.
    L'autre solution étant d'assembler séparément la routine en prévoyant les variables d'entrées, puis de linker le C et l'asm "à la main", c'est un peu plus relou. la méthode 1 est plus simple ^^

    Au fait si ces instructions sqrt ne sont dans une boucle critique du programme, c'est pas la peine de s’embêter à optimiser, je me suis alors sans doute un peu trop excité à trouver la solution à un pb qui n'existe pas
    Dernière modification par ranarama ; 13/01/2016 à 23h27.

Sur le même thème :

Discussions similaires

  1. Pic18f4550
    Par bachboucha dans le forum Électronique
    Réponses: 6
    Dernier message: 31/03/2014, 12h27
  2. Pic18f4550 2
    Par bachboucha dans le forum Électronique
    Réponses: 3
    Dernier message: 26/03/2014, 20h03
  3. Pic18f4550
    Par simba02 dans le forum Électronique
    Réponses: 2
    Dernier message: 10/09/2011, 20h14
  4. Pic18f4550
    Par MAJDII dans le forum Électronique
    Réponses: 4
    Dernier message: 14/04/2010, 22h00
  5. Usb + pic18f4550
    Par flolarajasse dans le forum Électronique
    Réponses: 12
    Dernier message: 02/04/2010, 14h43
Découvrez nos comparatifs produits sur l'informatique et les technologies.