Bonjour,
J'avais déjà traité cette question dans un post précédent mais cette fois les données sont différentes.
J'ai un buffer circulaire qui doit recevoir des données venant d'un bus CAN avant de les utiliser pour la génération d'un signal en sortie (fonction ECT).
J'utilise un µc MC9S12XDP512.
J'ai donc un compteur qui s'incrémente lorsque je viens écrire une donnée dans le buffer et un deuxième compteur qui s'incrémente lorsque je viens lire une donnée.
Pour mon projet je dois absolument éviter que la mémoire se retrouve pleine ou vide.
Dans le cas d'une mémoire pleine je voudrais envoyer une trame via le bus can pour stopper la transmission des données. (mais ça c'est un autre problème)
Pour gérer ces alertes j'ai pensé à utiliser un modulo
En gros quand je me retrouve situation d'alerte ce calcul = 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part (taille_buffer + (cpt_write - cpt_read))%taille_buffer
Mais je ne sais pas faire la différence entre la mémoire vide et pleine.
Comment je pourrais faire cette différence ?
Merci d'avance,
Partager