wtedy kiedy operacje w przerwaniu nie będą wykorzystywały rejestrów procesora albo wtedy gdy obsługę ISR napiszesz sobie jako wstawkę asemblerową i sam odłożysz stosowne bajty na stos a później zdejmiesz. Tyle że w tym konkretnym przypadku nawet jeśli zrobisz to sam w asemblerze to zyskasz może tylko 1-2 rozkazy związane ze stosem (push i pop)
czyli co to znaczy że nie będą wykorzystywane rejestry ? np:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
taka najprostsza operacja zostanie w asemblerze zamieniona na jeden rozkaz asemblerowy
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czyli nie wymaga rejestrów ani (CO WAŻNE) nie zmienia znaczników
ale już twoje inkrementowanie zmiennej z RAM jak zrobić bez rejestrów w asemblerze AVR ? nie da rady

musi to być mniej więcej coś takiego
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
mogłem pomylić się co do mnemoników i ich użycia bo już dawno asemblera nie używałem

ale jak widzisz użłem rejestru R16 - czyli musiałbym już go przynajmniej odłożyć. A skoro robię zwiększanie o 1 to zmienią się znaczniki więc i rejestr SREG też trzeba odłożyć - więc wyszłoby mniej więcej coś takiego
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czyli już praktycznie masz prolog i epilog jak w C bez ISR_NAKED - no może dojdzie tam jeszcze odłożenie rejestru R0 - możesz zajrzeć i porównać sobie w pliku *.lss
czyli reasumując daj sobie spokój z ISR_NAKED w tak prostym kodzie obsługi przerwania bo i tak kompilator zrobi to bardzo dobrze

... no chyba że chcesz w celach ćwiczebnych pisać wstawki asm - to ok
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]