Trame edf toutes les minutes sur port serie

Bonjour,

Je debute avec ma carte uno et mon shield Teleinfo carteletronic
J'ai adapter mon code a divers exemples,
mais je voudrais que mes données arrive dans mon moniteur serie toute les
minutes alors que là:

elle défile en continue.

j'ai essayer de mettre un (delay)
mais ça fait rien,

#include "print.h"
#include "string.h"
#include "stdio.h"


#define echo_USB //envoie toutes les trames téléinfo sur l'USB


//*****************************************************************************************
 byte inByte = 0 ; // caractère entrant téléinfo
 char buffteleinfo[21] = "";
  byte bufflen = 0;
 

const char debtrame = 0x02;
const char deb = 0x0A;
const char fin = 0x0D;



// *************** déclaration activation compteur 1 ou 2 ******
#define LEC_CPT1 5 // lecture compteur 1
#define LEC_CPT2 6 // lecture compteur 2

int compteur_actif = 1; // numero du compteur en cours de lecture
byte donnee_ok_cpt1 = 0; // pour vérifier que les donnees sont bien en memoire avant ecriture dans fichier

byte donnee_ok_cpt1_ph = 0;


// ************** initialisation *******************************
void setup()
{
 // initialisation du port 0-1 lecture Téléinfo
    Serial.begin(1200);
      // parité paire E
      // 7 bits data
    UCSR0C = B00100100;

 // initialisation des sorties selection compteur
    pinMode(LEC_CPT1, OUTPUT);
    pinMode(LEC_CPT2, OUTPUT);
    digitalWrite(LEC_CPT1, HIGH);
    digitalWrite(LEC_CPT2, LOW);
             
 

 
}

// ************** boucle principale *******************************

void loop() // Programme en boucle
{
  
        read_teleinfo();
     
            
}

///////////////////////////////////////////////////////////////////
// Calcul Checksum teleinfo
///////////////////////////////////////////////////////////////////
char chksum(char *buff, int len)
{
  int i;
  char sum = 0;
    for (i=1; i<(len-2); i++) sum = sum + buff[i];
    sum = (sum & 0x3F) + 0x20;
    return(sum);
}

///////////////////////////////////////////////////////////////////
// Analyse de la ligne de Teleinfo
///////////////////////////////////////////////////////////////////
void traitbuf_cpt(char *buff, int len)
{

if (compteur_actif == 1){

}
}

///////////////////////////////////////////////////////////////////
// Lecture trame teleinfo (ligne par ligne)
///////////////////////////////////////////////////////////////////
void read_teleinfo()
{
  
  // si une donnée est dispo sur le port série
  if (Serial.available() > 0)
  {
  // recupère le caractère dispo
    inByte = Serial.read();

#ifdef echo_USB
    Serial.print(char(inByte)); // echo des trames sur l'USB (choisir entre les messages ou l'echo des trames)
#endif

    if (inByte == debtrame) bufflen = 0; // test le début de trame
    if (inByte == deb) // test si c'est le caractère de début de ligne
    {
      bufflen = 0;
    }
    buffteleinfo[bufflen] = inByte;
    bufflen++;
    if (bufflen > 21)bufflen=0; // longueur max du buffer (21 pour lire trame ADCO)
    if (inByte == fin && bufflen > 5) // si Fin de ligne trouvée
    {
       
      if (chksum(buffteleinfo,bufflen-1)== buffteleinfo[bufflen-2]) // Test du Checksum
      {
        traitbuf_cpt(buffteleinfo,bufflen-1); // ChekSum OK => Analyse de la Trame
      }
    }
  }
}

pouvez-vous m'aider sur ce sujet SVP??

Merci par avance!

Salut,

Utilise des interruptions temporelles : [Tutorial] Les interruptions temporelles avec Arduino | B@ttoMicro - Microcontrôleurs et compagnie !

Commente :

 #define echo_USB //envoie toutes les trames téléinfo sur l'USB

Dans ta loop() tu n'as plus qu'à utiliser une interruption temporelle toutes les minutes pour imprimer la dernière trame reçue.