Was das Code-Beispiel sagen will, ist folgendes:
Man sollte nicht "sei()" zum Wieder-Aktivieren der Interrupts verwenden,
sondern man sichert vor dem "cli()" das Statusregister, macht dann
"cli()" (damit werden die Interrupts deaktiviert), und später wird
einfach das Statusregister rückgespeichert; damit wird einfach der
Zustand wiederhergestellt, der vor dem "cli()" bestand. Wenn nämlich
vorher schon an anderer Stelle die Interrupts dekativiert wurden,
bleiben sie nun immer noch deaktiviert, bis an dieser anderen Stelle
seinerseits das Statusregister ebenfalls (mit ggf. aktivem I-Bit)
rückgespeichert wird. Damit soll genau die Situation vermieden werden,
daß an einer Stelle "sei()" gemacht wird ohne Rücksicht darauf, daß
vielleicht eine übergeordnete Funktion aktiv ist, die weiterhin
dekativierte Interrupts benötigt.
Daher: nicht die Sequenz "cli()" / "sei()" verwenden, sondern
uint8_t tmp_sreg = SREG;
cli();
...
SREG = tmp_sreg;
Insofern steckt im Tutorial kein Fehler. Lies es nochmal aufmerksam
durch, dann wird Dir das aufgehen.
Gruß, Günter