Je dirais que ce n'est pas très malin de modifier les valeurs de registres sans les avoir lues et placée dans des variables avant ou à minima les afficher dans un terminal avec un Serial.print.
- tu enregistre ou tu affiche et note les valeurs des registres que tu veux modifier
- tu fais tes modifs
- tu rétabli les valeurs d'origines
Note : comme cette configuration se fait par une fonction cachée par arduino (init() qui est lancé avant setup() ), dès que tu allume le micro ou que tu fais un reset la config arduino est rétablie.
Macro sbi
Elle fait partie d'un groupe de macro Atmel qu'Atmel a abandonné au profit de _BV() (BV = Bit Vise = manipulation de bits).
Comme elles ne sont plus disponibles dans l'avr-libc, Wiring les a incorporé dans son IDE (Arduino est un fork de Wiring).
Tu peux tout aussi bien faire simplement de la manipulation de bit, personnellement je trouve que manipuler les bits est plus clair à la relecture que ces macros --> ce n'est qu'une question de perception personnelle.