En effet, il faut sauvegarder le SREG avant de désactiver les IT pour ne pas perdre le SREG
C'est un exemple à la RACHE. (j'ai même introduit un bug: c'est align(512) pour l'alignement du buffer)
sur les softs que j'ai en production actuellement, je n'ai que des buffers de 256bytes pour les AVR, donc moins de données en format 16bits: ce code est extrait d'un prototype qui fonctionne très bien.
sur les uC qui gèrent plus que l'interruption UART, j'utilise plutôt des macros du genre:
Je conseille de ne surtout pas réactiver les interruptions dans les routines d'interruption en utilisant ces macros si on ne sait pas gérer les interruptions imbriqués ("nested") et attention à l'explosion de la pile avec la réentrance... etc.
[^] # Re: E_NOENOUGH_INFO | E_UNNEEDED
Posté par plr . En réponse au message Volatile, struct et interruptions.. Évalué à 2.
En effet, il faut sauvegarder le SREG avant de désactiver les IT pour ne pas perdre le SREG
C'est un exemple à la RACHE. (j'ai même introduit un bug: c'est align(512) pour l'alignement du buffer)
sur les softs que j'ai en production actuellement, je n'ai que des buffers de 256bytes pour les AVR, donc moins de données en format 16bits: ce code est extrait d'un prototype qui fonctionne très bien.
sur les uC qui gèrent plus que l'interruption UART, j'utilise plutôt des macros du genre:
Je conseille de ne surtout pas réactiver les interruptions dans les routines d'interruption en utilisant ces macros si on ne sait pas gérer les interruptions imbriqués ("nested") et attention à l'explosion de la pile avec la réentrance... etc.
a2g