Witam
Jeśli ktoś by potrzebował dość znośnego timera sprzętowego ...
.. to pierwszy użyteczny programik w C.
Ponieważ jestem ledwie początkujący w C , postanowiłem sprawdzić jak to wychodzi w C ,
w zestawieniu do asemblera , po raz pierwszy jestem mile zaskoczony , różnica
między szybko napisanym kodem w .asm a implementacją w C wynosi zaledwie dwa cykle zegara na korzyść
asemblera w stosunku do C {266/264 cykle dla wykonania bez żadnego aktywnego timera }
oraz również dwa cykle na korzyść asemblera dodatkowo na każdy aktywny-zliczany w danej chwili trimer
{14/12 cykli dodatkowo na każdy aktywny timer( te dwa cykle tutaj to już nieco więcej bo ~15%}
Uwaga : timer posiada "na zewnątrz" oprócz liczników dwa 16 bitowe słowa stanu :
Tm_Off - którego ustawione bity od b0 do b15 wskazują przez jeden cykl , który timer zakończył liczenie
Tm_ON - którego ustawione bity od b0 do b15 wskazują timery których stan jest różny od zera - jeszcze liczą
Zamiarem było stworzenie szybkiego wzorca ,który umożliwia dołączenie niezależnej obsługi dla każdego timera
w osobnym przerwaniu wymuszonym programowo , po kolei lub osobno.
Zawsze znajdzie się niewykorzystane przerwanie sprzętowe , pod które można podwiesić obsługę "wyliczonych "
timerów . Użycie osobnych przerwań ułatwia unikanie długotrwałego blokowania przerwań o wyższym priorytecie.
Jeśli komuś się przyda , bardzo proszę ,
Jako początkujący jestem gotów na każde gromy i uwagi ,
Dziękuję J.P.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.