to jest tak .... jeśli czas trwania przerwania to np 450 cyki zegara ... natomiast przerwanie wywoływane jest co 400 cykli zegara to co się dzieje ? To się dzieje MASAKRA - oczywiście program główny będzie wykonywany ALE ...
ale uwaga! w jaki sposób ?
Otóż ZAWSZE po zakończeniu przerwania po tych 450 cyklach nastąpi powrót z przerwania i skok do programu głównego - wykonanie JEDNEJ !!!! instrukcji asm (a nie linii programu w C), i BACh! znowu skok do przerwania! .. i tak w kółko
więc możesz już sobie wyobrazić co się będzie działo

przerwanie będzie "ładnie" śmigać, ale program główny będzie wolniejszy niż najwolniejszy ŚLIMAK na świecie

-
można powiedzieć, że zajętość procesora będzie = 99,999999%
----------------------
dla porównania jeśli przerwanie będzie się wykonywało np 200 cykli a wywoływane będzie co 400 cykli to zajętość procesora będzie ok 50%

czyli raczej w miarę spokojnie - choć to zależy co tam się będzie miało dziać i jak będą działać inne przerwania
jeśli przerwanie będzie się wykonywało np 40 cykli a wywoływane będzie co 400 cykli to zajętość procesora będzie ok 10%

rozumiesz ?

Przy programowym PWM'ie nie można sobie pozwalać na zbyt wysokie częstotliwości taktowania timera bo wchodzisz tym samym w coraz większe obciążenie procesora
a weź pod uwagę, że jeszcze są inne przerwania, których czas wykonywania także się dolicza sumarycznie do tej zajętości
mam nadzieję, że teraz to już będzie jasne

... ale jeśli jeszcze nie to śmiało pytaj
_________________
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 ]