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]
1
Bonjour à tous,
Pour clore le sujet, voici le problème et la solution: l'IDE envoie à Arduino des chaînes de caractères se terminant par LF (ASCII 10) et seulement LF, alors que les émulateurs série que j'utilisaient ajoutent CR+LF, ou rien du tout.
En les paramétrant correctement, ça fonctionne bien. C'était tout bête.
Merci.
JPM06

2
Bonjour,

Pour être plus clair, je joins le petit programme en question.
Et oublions pour l'instant la réponse de Pierre au sujet des caractères UTF-8, je m'en passerai.

L'idée est pouvoir commander l'Arduino avec des messages texte.
Le programme comprend les commandes indiquées dedans.
Par exemple:
  en tapant ? on en a la liste.
  en tapant xxx 56 on donne la valeur 56 à la variable xxx
  en tapant xxx ? on demande la valeur de la variable xxx,
et idem pour l'eeprom, le bus I2C et d'autres que j'ai otées pour clarifier.

Le problème: ça fonctionne très bien depuis l'IDE, mais pas depuis un émulateur de terminal (j'en ai trois) ou depuis mes propres programmes en VisualBasic, ce qui est le but final.

Merci de votre aide,

JPM06

3
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
---

4
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

5
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!

6
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]