Fonction millis() ,boucle "for"

Comme Data ne sert nulle part, l'optimiseur, s'il fait bien son travail, va retirer la ligne (si j'ose dire) Data++;
La boucle ne servant plus à rien, l'optimiseur zélé va la retirer aussi, (et le stockage et le temps de calcul seront améliorés).
Deux solutions sont possibles:
a) Déclarer Data comme "volatile", pour ... éviter que l'optimiseur ne la volatilise.
b) forcer des instructions assembleurs (NOP ne fait rien) dans cette boucle cf Inline Assembler Cookbook et ... les déclarer comme volatiles.