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

Interruption sur flowcode rapport entre fréquence et temps



  1. #1
    Mu la Fraga

    Question Interruption sur flowcode rapport entre fréquence et temps


    ------

    voila c'est la première fois que je poste sur ce forum...
    bon dans le cadre du PPE en TSSI on doit faire un robot qui suit une ligne ramasse des balles et les lance.
    Je m'occupe de la programmation de la fonction lancer et j'utilise une interruption (débordement du TMR0) pour que le programme de la fonction lancer s'arrête au bout de 90 s donc j'ai réussi à faire fonctionner l'interruption (le prof n'y connaissait rien...) mais je n'arrive pas à choisir le temps (en seconde) de l'interruption qui dépend de la fréquence d'interruption que j'ai (par rapport au prescalaire et la vitesse d'horloge interne du PIC.)
    Au faites j'utilise le PIC 16F88 ^^
    Un aperçu des propriétés des interuptions sous flowcode si ça peut servir ^^

    -----

  2. Publicité
  3. #2
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    Bonsoir,

    c'est écrit...
    fréquence d'interruption = 600hz...
    (cad 600 interruptions par seconde théoriquement...)...

    après tu peux changer cette fréquence avec
    -le prescaler
    et/ou
    -le registre TMR0
    et/ou
    -en ajoutant un compteur

    vede
    ;O]

    ps : et donc "théoriquement", tu rajoutes un compteur dans l'int...
    et à chaque fois qu'il arrive à 600... ben t'as une seconde...
    Dernière modification par vede ; 19/03/2010 à 20h21.

  4. #3
    Mu la Fraga

    Re : Interruption sur flowcode rapport entre fréquence et temps

    oui apparemment ma question pouvait paraitre bête mais bon je vais encore m'enfoncer ^^
    est ce que tu pourrai me montrer comment tu calcul le temps en seconde (j'ai un peu compris mais je vois pas comment appliquer ça) en utilisnat l'exemple de la screen shot s'il te plait ...
    oui mon cerveau est un peu lent pour assimiler ^^"....

  5. #4
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    Citation Envoyé par Mu la Fraga Voir le message
    oui apparemment ma question pouvait paraitre bête mais bon je vais encore m'enfoncer ^^
    est ce que tu pourrai me montrer comment tu calcul le temps en seconde (j'ai un peu compris mais je vois pas comment appliquer ça) en utilisnat l'exemple de la screen shot s'il te plait ...
    oui mon cerveau est un peu lent pour assimiler ^^"....
    re ;O]

    je veux bien...
    mais d'ou sort cette horloge 19666000 ????
    c'est un quartz 20Mhz?

    et est-ce qu'avec FlowCode tu as accès au registre TMR0???

    réponds à mes 2 questions,
    et j'essayerais de t'aider...
    vede
    ;O]

  6. A voir en vidéo sur Futura
  7. #5
    Mu la Fraga

    Re : Interruption sur flowcode rapport entre fréquence et temps

    19666000 Hz c'est la vitesse d'horloge interne de mon PIC 16F88 mais d'après ce que j'ai compris et d'après ce que m'a dit mon prof je peux la changer avec le logiciel, je peux la faire varier de 1000000 Hz à 20000000 Hz
    sinon le registre TMRO je sais pas trop ce que ça représente donc.... (je suis vraiment débutant en elec....)
    merci de passer du temps pour moi c'est sympa ^^...

  8. #6
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    Citation Envoyé par Mu la Fraga Voir le message
    19666000 Hz c'est la vitesse d'horloge interne de mon PIC 16F88 mais d'après ce que j'ai compris et d'après ce que m'a dit mon prof je peux la changer avec le logiciel, je peux la faire varier de 1000000 Hz à 20000000 Hz
    sinon le registre TMRO je sais pas trop ce que ça représente donc.... (je suis vraiment débutant en elec....)
    merci de passer du temps pour moi c'est sympa ^^...
    re ;O]

    le registre TMR0 permet d'affiner la fréquence en sortie...
    c'est LE COMPTEUR...
    jette un oeil à la datasheet... section TMR0... le temps
    que j'envoie mes explications... avant minuit...

    vede
    ;O]

  9. Publicité
  10. #7
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    rere ;O]

    vous utilisez un quartz? 20Mhz?

    si NON,
    l'horloge interne du 88 est "limitée" à 8Mhz... maxi...

    donc sans quartz il ne dépassera jamais cette vitesse...
    c'est important car l'horloge "centrale" définit les réglages du TMR0...

    vede
    ;O]

    ps 'taing de profs... FlowCode... y zont pas honte???
    faire un organigramme c'est bien...
    mais delà à programmer en "organigramme"...
    là je sais pas... niveau "apprentissage"...

  11. #8
    Mu la Fraga

    Re : Interruption sur flowcode rapport entre fréquence et temps

    d'accord je regarde ça ;p
    et merci encore ^^

  12. #9
    Mu la Fraga

    Re : Interruption sur flowcode rapport entre fréquence et temps

    désolé du double post on a poster en même temps^^
    j'avais déjà vu dans un autre topic que c'était beaucoup plus interessant de commencer par apprendre le C qui n'était pas si compliquer que ça avant de programmer mais bon là on utilise flowcode et je crois que j'ai pas trop le choix^^
    alors quand je vérifie dans le menu pour changer la vitesse d'horloge je vois bien de 1000000 Hz à 20000000 Hz petite screen pour montrer que je mens pas ^^


    ps : le menu déroulant est celui de la vitesse de l'horloge

  13. #10
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    Citation Envoyé par Mu la Fraga Voir le message
    désolé du double post on a poster en même temps^^
    j'avais déjà vu dans un autre topic que c'était beaucoup plus interessant de commencer par apprendre le C qui n'était pas si compliquer que ça avant de programmer mais bon là on utilise flowcode et je crois que j'ai pas trop le choix^^
    alors quand je vérifie dans le menu pour changer la vitesse d'horloge je vois bien de 1000000 Hz à 20000000 Hz petite screen pour montrer que je mens pas ^^


    ps : le menu déroulant est celui de la vitesse de l'horloge
    re ;O]

    ok je comprends mieux...
    c'est des vitesses "simulées"...

    je te prépare une thèse sur le sujet...
    malgré que je sois pas un grand explicationneur...
    te tiens au jus avant minuit...

    et un conseil... partons sur une horloge 4Mhz (4000000)...
    cela va simplifier tous les calculs... leurs compréhensions...
    que t'auras plus qu'à adapter pour d'autres horloges (10Mhz...)

    je te tiens au jus...
    vede
    ;O]

  14. #11
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    ps : en attendant essaie de voir si tu peux
    modifier la valeur du registre TMR0 avec FlowCode...
    ça pourrait servir...
    ;O]

  15. #12
    Mu la Fraga

    Re : Interruption sur flowcode rapport entre fréquence et temps

    ok je regarde ça....

  16. Publicité
  17. #13
    Mu la Fraga

    Re : Interruption sur flowcode rapport entre fréquence et temps

    bon j'ai regarder dans tous les menus et toutes les options (et surtout avec la fonction rechercher de l'aide) mais rien sur le registre TMR0...

  18. #14
    vede

    Re : Interruption sur flowcode rapport entre fréquence et temps

    Citation Envoyé par Mu la Fraga Voir le message
    bon j'ai regarder dans tous les menus et toutes les options (et surtout avec la fonction rechercher de l'aide) mais rien sur le registre TMR0...
    reb ;O]

    ok... on peut faire sans...

    je connais pas FlowCode, mais tu devrais pouvoir y accéder...
    cad
    pouvoir "positionner" la valeur de TMR0...

    bon sans ça... par défaut TMR0=256... mais ça limite les réglages...
    je t'explique avec exemples avant minuit...

    vede
    ;O]

  19. #15
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    re ;O]

    bon je vais tenter de t'expliquer le calcul de la fréquence...
    tout est basé sur l'horloge principale du PIC...

    ensuite, le caLcul est plus simple en se basant
    sur la Période plutôt que la Fréquence (P, et F(Hz) = 1/P)...

    le TMR0 est un compteur 8bits (256 MAX)...
    il peut compter en se basant soit :
    -sur les flancs d'une "horloge" externe
    -sur le nombre d'instruction executées
    c'est notre cas, alors combien "dure" une instruction?
    tout simplement 4/Fosc (Fosc=Horloge principale)
    exemples :
    FOSC=4Mhz > une instruction = 1µs
    FOSC=8Mhz > une instruction = 0.5µs
    FOSC=20Mhz > une instruction = 0.2µs

    puis la base des calculs :
    P(s) = (4/Fosc) * prescaler * TMR0
    F(Hz) = 1/ P

    par défaut TMR0=256...
    aprés en modifiant TMR0, on peut donc aussi
    "jouer" avec la Période... d'où la Fréquence...
    idem en "jouant" avec le PreScaler...

    vede
    ;O]

    un exemple concret :
    FOSC = 4Mhz
    Prescaler = 2 (c'est la valeur par défaut)
    P(s) = 1µs * 2 * 256 = 512µs
    F(Hz) = 1/0.000512 (environ 1953Hz)

  20. #16
    Mu la Fraga

    Re : Interruption sur flowcode rapport entre fréquence et temps

    d'accord merci...
    après avoir fait des tests sur un vrai microcontroleur je me suis rendu compte que le temps de simulation avait rien avoir avec le temps réel....
    donc d'après tes explications si je veux 90 s comme temps je dois faire :
    P(s) = (4/Fosc) * prescaler * TMR0
    ssi presclaler = P(s) * Fosc / (TMR0 * 4 )
    donc prescaler = 90 s * 4*10^6 / (256 *4 ) environ= 351 * 10^3
    Mais le prescaler 351*10^3 n'existe pas et ça me parais un peu beaucoup (une erreur ?).
    donc j'ai deux solution mais je sais pas trop laquelle marche le mieux tu pourrais me conseiller :

    - je pourrais rajouter un compteur enfin je veux dire que le programme s'arrête au bout d'un certain nombre x d'interruption (mais comment trouver ce nombre x ?)

    - je pourrais ne pas utiliser l'horloge interne du micro-contrôleur et à la place mettre un quartz qui permettrais de simplifier les calculs et d'avoir facilement 90 s

    désolé de toutes ces questions je dois être un peu lourd ^^" ...
    merci ça m'a bien aidé jusqu'à maintenant , j'ai bien avancé .

  21. #17
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    Citation Envoyé par Mu la Fraga Voir le message
    d'accord merci...
    après avoir fait des tests sur un vrai microcontroleur je me suis rendu compte que le temps de simulation avait rien avoir avec le temps réel....(...)
    même en "réél" tu auras un "décalage"...
    dû à la tolérance du PIC et du Quartz...

    après oui, il te faut rajouter un compteur...
    pour pouvoir arriver à environ 90s...

    et la solution pour arriver à pile-poil 100µs (théoriques) par exemple,
    ben il "suffit" d'initialiser la valeur de TMR0 après chaque interruption...
    si c'est possible... avec FlowCode...

    je t'envoie un autre exemple d'ici demain...

    vede
    ;O]

  22. #18
    Mu la Fraga

    Re : Interruption sur flowcode rapport entre fréquence et temps

    j'arrête pas de te remercier mais merci encore de m'aider ^^

    Petite question indépendante du projet quand un programmeur programme (c'est le comble pour un programmeur ^^") il le fait en langage de haut niveau ( C,C++, java ...) ou il utilise des logiciel performant qui permettent d'aller plus vite (dans le style de flowcode ...en mieux bien sûr...^^)
    Parce que là j'essaie (pour voir à quoi ça ressemble) d'apprendre le C c'est comme même long à écrire les fonctions et les instructions non ?...
    enfin c'était juste une petite question qui m'est venu à l'idée... ^^

  23. Publicité
  24. #19
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    Citation Envoyé par Mu la Fraga Voir le message
    j'arrête pas de te remercier mais merci encore de m'aider ^^

    Petite question indépendante du projet quand un programmeur programme (c'est le comble pour un programmeur ^^") il le fait en langage de haut niveau ( C,C++, java ...) ou il utilise des logiciel performant qui permettent d'aller plus vite (dans le style de flowcode ...en mieux bien sûr...^^)
    Parce que là j'essaie (pour voir à quoi ça ressemble) d'apprendre le C c'est comme même long à écrire les fonctions et les instructions non ?...
    enfin c'était juste une petite question qui m'est venu à l'idée... ^^
    re ;O]

    il utilise des compilos performants et puissants (donc pas FlowCode)
    qui intègrent des librairies de fonctions pré-programmées (C),
    lui permettant d'accélerer le temps de dévelloppement...
    et avec le temps, le programmeur se crée/ajoute lui-même ses
    propres librairies... selon ses besoins/affinités...

    en fait le "langage" n'est pas la priorité...
    le plus important est de maîtriser sa cible...
    (exemple un 16F88)
    de connaître et comprendre toutes les pages de sa datasheet...
    (même celle qui détaillent les 32 memnoniques "ASM", et
    ce même si on programme pas en "ASM"...)...
    et donc aussi de "maîtriser" le compilateur (code généré)...

    et delà, quelque soit le langage (ASM,C,BASIC,FLOWCODE?...)
    il peut maîtriser/optimiser son programme...

    sinon MPlab est LA REFERENCE... comme environnement....

    je te tiens au jus d'ici ce soir (dimanche) pour le TMR0...
    vede
    ;O]

    ps : après un bon programmeur, même en ASM "PUR",
    commence toujours par faire un organigramme...
    cad "du FLOWCODE"...
    ;O]

  25. #20
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    rere ;O]

    un p'tit exemple en "VRAI" ASM "PUR" ;O] :

    33 3F 39 3F FE 01 F7 02 ....

    ;O]

    c'est long à coder ;O°
    et vaux mieux faire un organigramme avant ;O]
    et même un tableau d'adresses ;O]
    au moins ;O]

    bon'dimanche à tous,
    vede
    ;O]
    Dernière modification par vede ; 21/03/2010 à 02h54.

  26. #21
    Mu la Fraga

    Re : Interruption sur flowcode rapport entre fréquence et temps

    désolé je n'avais pas vu qu'il y avait deux pages je viens de découvrir tes nouveaux messages avec joie bon merci pour les réponses,
    je pense avoir réussi ce que je voulais :
    comme je l'ai dit en calculant j'ai trouver un prescaler de 351 *10^3 donc pour trouver le nombre d'interruptions (compteur) avec un prescaler de 256 j'ai fait
    (351*10^3)/256=1171 interruptions
    j'ai donc essayer avec mon PIC sur une carte et un chronomètre et je trouve 1 min 10 avant que les 1171 interruptions ont lieu (j'étais content je me rapprochais...)
    donc j'ai tout simplement fais un rapport de proportionnalité (qui dit a un produit en croix ?...)
    70 s pour 1171 interruptions
    donc 90 s pour ? interruptions
    ?=90 *1171/70=1763 interruptions
    je test encore avec mon fameux chronomètre et ma carte et là magie 1 min 30 je re test deux autre fois et là encore 1 min 30 voila peut être que ma technique n'a pas été très rigoureuse mais bon ça marche !!!!
    merci encore tu m'a bien expliqué...
    à bientôt (et désolé de pas avoir répondu plus tôt...)
    Dernière modification par Mu la Fraga ; 25/03/2010 à 10h42.

  27. #22
    vede

    Cool Re : Interruption sur flowcode rapport entre fréquence et temps

    Hi MU,

    pas de souci...
    hé super... je vois que tu parais avoir compris le principe...
    ha hé ha ben cha ché ben pratique les chronomètres ;O]
    (à défaut de période-fréquencemètre)

    à bientôt,
    56454445
    3B4F29
    ______________________________ __________
    46554D4552204E4520545545205041 53203B4F29

Discussions similaires

  1. PPE: interruption sous flowcode
    Par supernormalll dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 08/05/2009, 20h05
  2. mesure rapport cyclique sous Flowcode
    Par PiwikSIAHP dans le forum Électronique
    Réponses: 7
    Dernier message: 20/04/2009, 18h56
  3. rapport entre couple et rapport de transmission
    Par 1ergel dans le forum Technologies
    Réponses: 1
    Dernier message: 11/02/2009, 22h45
  4. Réponses: 7
    Dernier message: 14/03/2008, 16h09
  5. Rapport entre puissance et temps de chauffe
    Par Slyph dans le forum Physique
    Réponses: 3
    Dernier message: 13/03/2007, 19h11
Découvrez nos comparatifs produits sur l'informatique et les technologies.