Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - JPM06

Pages: 1 2 3 [4]
46
Merci, Pierre. Pour ce qui est des caractères accentués, je ferai sans ou je verrai ça plus tard.
Mais il reste l'autre problème, bien plus ennuyeux: Arduino semble ne pas recevoir les commandes que je lui envoie.
C'est pourtant du texte tout simple, sans accent. Par exemple "?" ou bien "iti".
Faut-il que je lui envoie en UTF-8 aussi? Comment? Les CR / LF à la fin aussi en UTF-8?
JPM06
---

47
Bonjour,
J'essaie de faire communiquer mon Arduino avec un PC via le port USB.
Avec l'IDE ça fonctionne très bien dans les deux sens.
Avec un moniteur série ou mes propres programmes en VB, je reçois bien les messages de l'Arduino mais:
1: les caractères accentués ne passent pas, et
2: il ne répond pas aux messages envoyés depuis le PC.
Peut-être une question de paramétrage. Pourtant c'est symétrique?
Merci pour toute idée sur la question.
JPM06

48
Débuter / Re : Problème de timer 1 sur Mega
« le: février 20, 2020, 12:24:53 pm »
Finalement le problème était au niveau du comptage: pour compter 10 fois la durée du timer, il faut écrire:if (++varCompteur == 10)ou bien
Citer
if (varCompteur++ == 9)
ou encoreif (++varCompteur > 9).
Pour de grandes valeurs du compteur comme 125 on ne voit pas trop la différence, mais pour de faibles valeurs, si. Là c'est bon.
Une erreur de débutant en C!

49
Débuter / Problème de timer 1 sur Mega
« le: février 19, 2020, 11:55:19 am »
Bonjour à tous,
Débutant en Arduino, j'essaie d'utiliser le timer 1 sans interruption ni rechargement, mais j'obtiens un résultat erroné quant au timing.
Comme un listing vaut mieux qu'un long discours, voici le code, resucée d'un exemple pris ici :
    /*
     * Clignotement d'une DEL (LED en anglais) par timer 1.
     */
    const byte Led = 13; // Pour utiliser la LED du module
    void setup () {
      pinMode (Led, OUTPUT);
      TCCR1A = 0;
      cli(); //au cas où
      // horloge de base 16MHz ->  période 0,0625 µs. Compteur à 16 bits
      TCCR1B = 0b00000011;      // division par 64, on compte en 4µs, on déborde toutes les 262,144ms
      TIFR1 = 0b00000001;       // TOV1
      TIMSK1 = 0b00000000; // Interruption locale bloquée par TOIE1
    }
     
    int varCompteur = 0; // La variable compteur
     
    void loop () {
      if (bitRead (TIFR1, 0) == 1) {       // Flag TOV2 mis à 1 ?
          bitSet (TIFR1, TOV1);      // Remise à zéro du flag TOV1 (voir texte)
          //pour vérifier les 262ms on compte 10 fois
          if (varCompteur++ > 10) { // <<<<<<<<<<<<<<<<<<<< chrono: 32s au lieu de 26,2s
              varCompteur = 0;         // On recommence un nouveau cycle
              digitalWrite (Led, !digitalRead(Led)); // Inversion de la LED     
          }
        }
      }
Pourquoi cette erreur ?. Y a-t-il interférence avec une autre ressource ?
Merci pour toute piste.
JPM06

Pages: 1 2 3 [4]