[Résolu]overflow hardware

Bonjour, je voulais utilisé la focntion overflow pour la liaision série mais celle ci existe seulement en software et non en hardware. Comment faire ? Merci

Ne pas faire d’overflow ? L’overflow est une erreur, au même titre qu’un dépassement de variable. On fait tout simplement tout pour ne pas que ça arrive … Ca n’est pas une erreur gérable au sens ou elle est inadmissible dans un code fini.

Ca ne fera pas planté ton Arduino, par contre la lecture sera faussée (perte de données écrasées). Tu peux le gérer et ça servira à gérer d’autre erreurs indépendantes du code, en incluant une CRC par exemple

d'accord merci

L’overflow n’est pas géré par la librairie mais tu pourrais faire ta propre librairie qui le gérerait. Il suffit dl’ajouter le test de ce bit lors de la lecture des données. Actuellement la librairie ne vérifie que la parité.

 ISR(USART1_RX_vect)
  {
    if (bit_is_clear(UCSR1A, UPE1)) {  // <--- test de la parité
      unsigned char c = UDR1;
      store_char(c, &rx_buffer1);
    } else {
      unsigned char c = UDR1;
    };
  }

B@tto:
Ne pas faire d’overflow

Certe c’est une évidence. Mais des fois, il est bon de savoir qu’il y en a justement pour le corriger.