09-29-2017, 01:08 PM
Sve ima svoje, u ISR moze da se radi ++, --, IF, THEN i tako neke jednostavnije funcije, moze i Floating Point ako je sa HW modulom, sa SW Floating Point to ide malo teze.
Ja praktikujem da uvek kontrolisem vreme ISR rutine, stavim na pocetku i na kraju jedan LED Toggle i pratim sa osciloskopom tacno koliko "fore" imam za rutinu, po nekom mom nepisanom pravilu, ne forsiram nikad vise od 50%, dakle 50% vremena radi nesto i ostalih 50% je slobodno dok se ne desi ponovo taj interupt.
Takodje imajte u vidu da samo poziv jedne funkcije "kosta" oko 1us. Nije mi jasno sto bas toliko ali tako ispada (treba mu vremena da uradi PUSH/POP stacka), tako da u ISR sto je moguce vise izbegavajte pozivanje funkcija nego "diskretno" napisite potrebnu funcionalnost.
Ja praktikujem da uvek kontrolisem vreme ISR rutine, stavim na pocetku i na kraju jedan LED Toggle i pratim sa osciloskopom tacno koliko "fore" imam za rutinu, po nekom mom nepisanom pravilu, ne forsiram nikad vise od 50%, dakle 50% vremena radi nesto i ostalih 50% je slobodno dok se ne desi ponovo taj interupt.
Takodje imajte u vidu da samo poziv jedne funkcije "kosta" oko 1us. Nije mi jasno sto bas toliko ali tako ispada (treba mu vremena da uradi PUSH/POP stacka), tako da u ISR sto je moguce vise izbegavajte pozivanje funkcija nego "diskretno" napisite potrebnu funcionalnost.