arduino mega 2560 "Timer"
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

arduino mega 2560 "Timer"



  1. #1
    inviteeccd5c88

    arduino mega 2560 "Timer"


    ------

    bonjour.
    je veux savoir comment je peut effectuer ces instruction en meme temps que l'éxécution du programme principale
    -----------------------------------
    lcd.setCursor(12,0);
    while(i<4){
    char keypressed = mykeypad.getKey();
    if(keypressed != NO_KEY && keypressed != '#' && keypressed != '*'){
    TestCode[i] = keypressed ;
    lcd.print('*');
    i++;}

    for(i=0 ; i<4 ; i++ ){
    if(Code[i] != TestCode[i]) { flag = 1 ; }
    --------------------------------------------------
    la solution que j'ai trouvé c'est d'utiliser un timer. je vous demande de m'aider comment je peux le faire et comment je peux préciser la fréquence du timer sachant que je travail sur une carte arduino mega 2560.
    merci d'avance pour vos réponses

    -----

  2. #2
    inviteeccd5c88

    Re : arduino mega 2560 "Timer"

    ou plutot la fréquence de l'interrupption

  3. #3
    invite1d577638

    Re : arduino mega 2560 "Timer"

    Ton arduino ne pourra jamais effectuer deux choses parfaitement en même temps...

    Je comprends que tu souhaites utiliser une interruption basée sur un timer, ce qui il me semble n'est pas possible directement en code. Il va falloir configurer manuellement les registres du 2560 pour qu'ils appellent ta fonction au moment où tu le souhaites:

    http://playground.arduino.cc/code/timer1
    http://www.instructables.com/id/Ardu...errupts/#step0

    Et c'est avec certains registres (prescaler) que tu spécifies la fréquence à laquelle l'interruption est déclenchée.

    A voir ton code, je vois pas l'intérêt du truc. Tu as besoin de le faire exécuter en même temps que quoi ? En plus tu sembles effectuer la lecture d'un clavier, pas dit que ça fonctionne en cours d'une interruption !

    Bref, précise un peu plus ton programme. Mais si tu as besoin que ton truc réagisse au moment où une touche est pressée, tu as plutôt intérêt à utiliser une interruption matérielle, pas un timer qui ne sera jamais synchro avec tes appuis...

  4. #4
    antek

    Re : arduino mega 2560 "Timer"

    Citation Envoyé par Zardoua93 Voir le message
    ou plutot la fréquence de l'interrupption
    Ou plutôt la fréquence de l'évènement déclencheur.
    Tu définis l'évènement qui va déclencher une interruption pour exécuter ton programme.

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

    Re : arduino mega 2560 "Timer"

    Citation Envoyé par antek Voir le message
    ...... déclencher une interruption pour exécuter ton programme.
    Faudrait aussi évaluer le temps que prend l’exécution de cette routine .
    J'aime pas le Grec

  7. #6
    inviteeccd5c88

    Re : arduino mega 2560 "Timer"

    je vous remercie pour vos reponses, je vais essayé le timer, si cela ne marche pas je procéderai autrement

  8. #7
    inviteeccd5c88

    Re : arduino mega 2560 "Timer"

    la question de si mon truc va reagisser ou pas, cela dépend de la vitessse de l'interruption, je pense qu'il est suffisament rapide pour atteindre le moment de l'appui sur le clavier.

  9. #8
    DAUDET78

    Re : arduino mega 2560 "Timer"

    Citation Envoyé par Zardoua93 Voir le message
    la question de si mon truc va reagisser ou pas, cela dépend de la vitessse de l'interruption,
    Non
    Ton interruption est déclenché par ton timer, pas par l'événement du "clavier"
    le moment de l'appui sur le clavier.
    Par contre su ton "clavier" arrive sur un UART, celui-ci mémorise l'info et il sera lu entre 0 et Xms plus tard (Xms étant la durée du timer )
    Par contre
    Citation Envoyé par Daudet
    Faudrait aussi évaluer le temps que prend l’exécution de cette routine
    , c'est la première chose à faire ! Si ta routine de lecture "clavier" dure 100mS, tu bloques ton Main 100ms toutes les Xms. C'est acceptable ?
    J'aime pas le Grec

  10. #9
    invite1d577638

    Re : arduino mega 2560 "Timer"

    Encore une fois l'appui d'une touche sur le clavier est un évènement très bref, pour que l'appui soit enregistré pile à la ligne correspondante dans ton extrait de code, il y a peu de chance pour que ça fonctionne ! Sans parler des problèmes de vitesse d'exécution évoqués par DAUDET78.

  11. #10
    inviteeccd5c88

    Re : arduino mega 2560 "Timer"

    Citation Envoyé par DAUDET78 Voir le message
    Non
    Ton interruption est déclenché par ton timer, pas par l'événement du "clavier" Par contre su ton "clavier" arrive sur un UART, celui-ci mémorise l'info et il sera lu entre 0 et Xms plus tard (Xms étant la durée du timer )
    Par contre , c'est la première chose à faire ! Si ta routine de lecture "clavier" dure 100mS, tu bloques ton Main 100ms toutes les Xms. C'est acceptable ?
    merci pour votre réponse, il y a t-il un moyen pour declenché le timer par l'evenement du clavier(4 lignes-4colonnes) .?

  12. #11
    DAUDET78

    Re : arduino mega 2560 "Timer"

    Citation Envoyé par Zardoua93 Voir le message
    merci pour votre réponse, il y a t-il un moyen pour declenché le timer par l'evenement du clavier(4 lignes-4colonnes) .?
    J'avais mis "clavier" car on ne savait pas ce que c'était ... on sait que c'est un clavier matricé, et qu'il va falloir gérer l'antirebondissement .
    Donc tu laisses tomber ton GetKey et tu géres directement ton hard avec un timer à 10ms

    Interruption :
    On est au cycle 1 ? On incrémente Cycle à 2
    Sortir 0001 sur le port Colonne
    Lire le port Ligne
    On lit 0000 on mémorise 0000 en Ram(1) : retour Int
    On lit 0001 , Ah, il y a une touche enfoncée !
    - Y avait 0000 en Ram(1) ? 0n note 0001 en Ram(1) premier contact de la touche : retour Int
    - Y avait 0001 en Ram(1) ? 0n note 0002 en Ram(1) deuxième contact de la touche . C'est bon On signale au main que la touche colonne0 et ligne1 est ON : retour Int
    - Y avait 0002 en Ram(1) ? : retour Int

    On est au cycle 2 ? On incrémente Cycle à 3
    Sortir 0010 sur le port Colonne
    Lire le port Ligne
    Etc etc .....

    On est au cycle 3
    ? On incrémente Cycle à 4
    Sortir 0100 sur le port Colonne
    Lire le port Ligne
    Etc etc .....

    On est au cycle 4
    ? On met Cycle à 1
    Sortir 1000 sur le port Colonne
    Lire le port Ligne
    Etc etc .....
    J'aime pas le Grec

  13. #12
    inviteeccd5c88

    Re : arduino mega 2560 "Timer"

    Citation Envoyé par DAUDET78 Voir le message
    J'avais mis "clavier" car on ne savait pas ce que c'était ... on sait que c'est un clavier matricé, et qu'il va falloir gérer l'antirebondissement .
    Donc tu laisses tomber ton GetKey et tu géres directement ton hard avec un timer à 10ms

    Interruption :
    On est au cycle 1 ? On incrémente Cycle à 2
    Sortir 0001 sur le port Colonne
    Lire le port Ligne
    On lit 0000 on mémorise 0000 en Ram(1) : retour Int
    On lit 0001 , Ah, il y a une touche enfoncée !
    - Y avait 0000 en Ram(1) ? 0n note 0001 en Ram(1) premier contact de la touche : retour Int
    - Y avait 0001 en Ram(1) ? 0n note 0002 en Ram(1) deuxième contact de la touche . C'est bon On signale au main que la touche colonne0 et ligne1 est ON : retour Int
    - Y avait 0002 en Ram(1) ? : retour Int

    On est au cycle 2 ? On incrémente Cycle à 3
    Sortir 0010 sur le port Colonne
    Lire le port Ligne
    Etc etc .....

    On est au cycle 3
    ? On incrémente Cycle à 4
    Sortir 0100 sur le port Colonne
    Lire le port Ligne
    Etc etc .....

    On est au cycle 4
    ? On met Cycle à 1
    Sortir 1000 sur le port Colonne
    Lire le port Ligne
    Etc etc .....
    j'ai compris l'idée, je vous remercie pour cette effort

Discussions similaires

  1. Arduino Mega 2560 soucis interruption externe
    Par invite7aefe76b dans le forum Électronique
    Réponses: 3
    Dernier message: 25/03/2015, 08h51
  2. Carte Arduino UNO R3 ou Arduino Mega 2560 R3 ?
    Par invite94b5085f dans le forum Électronique
    Réponses: 10
    Dernier message: 11/03/2015, 15h36
  3. Problème d'upload Arduino Mega 2560
    Par invite72f00bc4 dans le forum Électronique
    Réponses: 2
    Dernier message: 21/08/2011, 18h04
  4. "Mega système" solaire
    Par invitef122887c dans le forum Archives
    Réponses: 10
    Dernier message: 10/07/2011, 20h55
  5. [Thermique] Chaudière RADSON 2560 : mise en sécurité " 1 " ?
    Par invitebe0c3e97 dans le forum Dépannage
    Réponses: 2
    Dernier message: 01/02/2011, 08h26
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...